8

我在我的一台 Macbook 上遇到了最奇怪的问题。我有一个在我的 Macbook 上运行的 C# 应用程序。该应用程序通过 HTTP 与 Web 服务通信,它在我的旧 Macbook 上完美运行。

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

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

NotSupportedException使用提供的 URI 作为异常消息引发。

我还尝试了以下方法:

    HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.google.com");

并得到了同样的例外。我不确定为什么事情会变得疯狂并且想不出任何可能导致这种情况的原因,因为它似乎可以在其他 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

问候

4

1 回答 1

1

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

如果在那里找不到协议(在您的情况下为“http”),它会抛出您的 NotSupportedException。

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

或者,如果一切都失败了,请尝试通过反射调用 HttpWebRequest 的私有构造函数。

于 2013-11-28T15:46:37.393 回答