我的一本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)构造函数。