Zai*_*mir 7 c# macos mono http
我在我的一台Macbook上遇到了最棘手的问题.我有一个C#应用程序,在我的Macbook上以mono运行.该应用程序通过HTTP与Web服务进行通信,它在我的旧Macbook上完美运行.
我买了一个新的macbook并正在测试我的应用程序,但出于一些奇怪的原因:
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create(sURI);
Run Code Online (Sandbox Code Playgroud)
抛出NotSupportedException提供的URI作为异常消息.
我也尝试过以下方法:
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.google.com");
Run Code Online (Sandbox Code Playgroud)
并得到了同样的例外.我不确定为什么事情会变得疯狂,并且无法想到任何可能导致这种情况的事情,因为它似乎在其他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
Run Code Online (Sandbox Code Playgroud)
问候
WebRequest.GetCreateor 从 app.config/machine.config 获取其支持的协议列表,特别是配置部分system.net/webRequestModules。
如果在那里找不到协议(在您的情况下为“http”),则会抛出 NotSupportedException。
因此,请检查您的 machine.config,它可能缺少正确的 webRequestModules。它应该有“http”-> HttpRequestCreator。
或者,如果其他方法都失败,请尝试通过反射调用 HttpWebRequest 的私有构造函数。