【问题标题】:Unable to connect to the remote server but works when fiddler is running metro app无法连接到远程服务器,但在 fiddler 运行 Metro 应用程序时可以工作
【发布时间】:2012-09-07 06:48:29
【问题描述】:

我有一个奇怪的问题,我正在尝试从网络计算机中检索 XML 字符串,当我在自己的网络之外时它可以工作,但是当我在同一个网络上时,我会遇到以下异常:

+       $exception  {"Unable to connect to the remote server"}  System.Exception {System.Net.WebException}

An attempt was made to access a socket in a way forbidden by its access permissions 192.168.2.214:8080

我使用的代码是:

Uri URL = new Uri(SabURL + QueueStatusURL + API);
            string myURL = URL.AbsolutePath;



            var xmlResults = XDocument.Load(URL.OriginalString.ToString());

奇怪的是,当我运行 Fiddler4 时它工作得很好,Fiddler 做了什么让它开始工作?这是某种代理问题吗?如果是,我将如何处理?

【问题讨论】:

  • 如果你在浏览器中复制粘贴URL.OriginalString.ToString(),你会看到XML吗?
  • 我假设您检查过,所有 URL 都是正确的,所以我会查看是否为您的系统配置了代理(可能是自动代理)或者 Fiddler 是否链接了代理(请参阅帮助Fiddler 窗口),如果它链接一个,您可以检查您的应用程序是否使用该代理(例如使用 NetMon 并检查目标 IP)
  • 我可以直接访问 URL,并在 IE/Chrome 中获得 XML 输出,就像我说的那样,如果我在网络之外并且我将我的机器定位在家里,它工作得很好,所以在那里是我家庭网络某处的问题,但我不知道是什么
  • 我也遇到了同样的问题;但我发现只有在使用本地 IP 地址(192.x.x.x)时才会引发异常。当我使用公共 ip(指向同一个站点)对其进行测试时,我得到了同样的异常。
  • 同样的交易,我的应用程序要同时使用本地和远程端点:|

标签: c# .net microsoft-metro fiddler .net-4.5


【解决方案1】:

尝试添加专用网络的功能,它对我有用

【讨论】:

  • 谢谢哈里斯。在将 HttpWebRequests 发送到我的 Intranet 测试服务器时,我也这样做是为了让 Win8 Store 应用程序正常工作。好的,只要记得取消勾选实际商店提交!
  • @Stonetip 我在哪里可以找到这个选项
  • @ralphspoon 您将在解决方案资源管理器 > Package.appxmanifest 中找到此设置(只需双击打开并编辑)
【解决方案2】:

这是 IE 中的行为问题。如果请求没有解决,它将不会显示响应并且不会导航到页面。另一方面,Chrome 不关心请求是否无法解析,但仍会显示 URL 并显示服务器未找到或类似的消息。

fiddler 的作用是在开启时充当代理。因此,当您运行提琴手时,它会尝试解析请求,然后将 html 页面传递给 IE,即使出现错误也是如此。所以 IE 在 fiddler 运行时总是会显示一些东西,因为 IE 不会尝试自己处理请求。

不幸的是,没有已知的方法可以改变这种行为。

【讨论】:

  • 这很好地解释了为什么它会起作用,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 2016-08-02
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多