1

对于异步调用 HttpWebRequest 的请求方法,如BeginGetResponse,该Timeout属性不被注意。在我的机器上使用此方法完成的 HTTP 调用似乎仍然有一个默认超时,大约为 20 秒。这是从哪里来的?此超时配置在什么级别,我可以在哪里/是否可以更改它?

在我的实验中,我将地址 www.stackoverflow.com:9999 配置为代理服务器以引发超时。

4

1 回答 1

1

与往常一样,检查文档http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.timeout.aspx

Timeout 属性对使用BeginGetResponseBeginGetRequestStream方法发出的异步请求没有影响。

编辑: http: //msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx有一条重要信息:

当您在应用程序中启用网络跟踪时,此成员会输出跟踪信息。有关详细信息,请参阅网络跟踪。

也许您可以尝试一下并弄清楚发生了什么。此外,HttpRequest 中没有与 20secs 值相关的设置,因此它可能是特定于操作系统/驱动程序/DNS 的。

于 2013-03-04T20:24:28.343 回答