我的一本Macbook上出现了最奇怪的问题。我有一个在Macbook上单声道下运行的C#应用​​程序。该应用程序通过HTTP与Web服务进行通信,并且可以在我的旧Macbook上完美运行。

我购买了一台新的Macbook,并正在测试我的应用程序,但出于某些奇怪的原因:

    HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create(sURI);

抛出带有提供的URI的NotSupportedException作为异常消息。

我还尝试了以下方法:
    HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.google.com");

并得到了同样的异常(exception)。我不确定为什么事情会变得疯狂,并且无法想到任何可能导致这种情况的原因,因为它似乎可以在其他Mac上完美运行。

编辑:

我正在使用的Mono版本是2.10.11
异常的堆栈跟踪为:
Webrequest.Create  Exception string : System.NotSupportedException: http://www.google.com/
  at System.Net.WebRequest.GetCreator (System.String prefix) [0x00000] in <filename unknown>:0
  at System.Net.WebRequest.Create (System.Uri requestUri) [0x00000] in <filename unknown>:0
  at System.Net.WebRequest.Create (System.String requestUriString) [0x00000] in <filename unknown>:0
  at MyApp.XSPManager.GeneralSOAPFunction (System.String serverName, System.String settingsAsXml, SharedLib.zErrorCodes& errorCode, System.String& message, System.String& actionType) [0x00000] in <filename unknown>:0

问候

最佳答案

WebRequest.GetCreateor从app.config/machine.config中获取其受支持协议(protocol)的列表,特别是配置部分system.net/webRequestModules

如果未在此处找到协议(protocol)(在您的情况下为“http”),则会引发NotSupportedException。

因此,请检查您的machine.config,它可能缺少正确的webRequestModules。它应该有“http”-> HttpRequestCreator。

或者,如果其他所有方法均失败,则尝试通过反射调用HttpWebRequest的私有(private)构造函数。

10-07 23:39