17

我收到一个奇怪的错误。我已经设置了一个脚本,当 Fiddler 打开时可以完美运行 - 它使用 httpwebrequest 从网站下载报告,一切正常!

但是它仅在 Fiddler 打开时才有效?当提琴手不工作时,我只会收到“请求超时问题”

有谁知道如何解决这个问题并使它与我的 ASP.NET MVC 应用程序一起工作?

谢谢

编辑:感谢您的回复!关于代理 - 我想在 Windows Azure 上测试这个脚本 - 关于如何设置默认代理设置一点也不困惑?

4

6 回答 6

12

对于搜索者来说,这是另一个想法。我有一个以机器人方式操作我的网站的应用程序。该应用程序在 .Net 4.0 中使用 HttpWebRequest 和 HttpWebResponse。在两次或 3 次成功的 GET 之后,下一次将持续锁定。另一篇文章建议,由于对同一主机的并行连接数的限制,未正确关闭 HINTERNET 可能会导致应用程序阻止对同一主机的后续 GET。我不知道这是否是幕后发生的事情,但我想我会回去确定我可以关闭的地方。

我关闭了代码中的所有 HttpWebResponse 对象,我的问题就消失了。从这里我不明白为什么 Fiddler 会掩盖这个问题,但它确实做到了。在添加关闭之前,序列中的特定请求将始终超时。关闭响应后,一切都清除了,我可以在不通过 Fiddler 代理的情况下运行。

于 2011-04-01T03:48:22.620 回答
3

关闭所有 HttpWebRequest 对象作为@ProfVonLemongargle 建议解决了我遇到的相同问题。

Fiddler 可能会关闭与服务器的连接,因此当您的应用程序将其用作代理时,并发连接限制会被屏蔽。有关更多信息,请参阅此线程:HttpWebRequest 在第二次调用时超时

于 2012-04-20T06:23:45.970 回答
2

请注意 Fiddler 充当代理。在 Fiddler 运行时让应用程序正常工作但否则可能表明您的默认代理设置存在问题。打开 Internet 选项(可能通过 IE)并检查您的代理设置。特别要注意您是否通过脚本进行配置。

我会提到一种非常不可能的可能性,尽管它确实发生在我身上。我的机器上安装了某个防病毒产品。出于某种原因,它认为我的订阅已过期。结果是该软件无法运行,因此无法更新允许访问 Internet 的程序列表。除非 Fiddler 正在运行,否则我在到期后安装的程序将无法运行(因为 Fiddler 是在到期前安装的,所以它在“良好”列表中)。过期后安装的任何其他程序都在“坏”列表中(默认情况下)。

于 2009-06-23T01:39:27.193 回答
1

旧链,但我在我们的代码中发现了同样的问题。这是因为 javascript 中有剩余的 console.log 命令。这导致了 javascript 代码被阻止。

于 2012-04-25T15:23:48.467 回答
1

您是否使用 HTTPS 运行?如果是这样,您的代码可能不信任远程站点的证书,并且 Fiddler 可能会将数据传递给您的应用程序。向我们发送错误消息和复制此问题的最少量代码。

于 2009-06-23T01:42:05.550 回答
0

在公司网络上遇到同样的问题,我打开 Fiddler2 来诊断正在发送/接收的内容,问题就消失了!经过进一步研究,我发现 Fiddler 像代理一样通过它隧道传输流量,并且我的公司网络也使用代理的自动配置脚本(我假设 Fiddler 正在通过我的应用程序不知道的正确系统代理对其进行隧道传输)

为了让我的 VB.net 程序运行,我所要做的就是将代理设置添加到请求中:

Dim proxy = WebRequest.GetSystemWebProxy()
oRequest.Proxy = proxy
于 2015-01-20T20:45:15.353 回答