C#HttpWebRequest忽略设置超时



然后立即抛出一个WebException超时。

HttpWebRequest.Timeout设置为5000(=5秒(。但我在不到1秒后就发现了异常,哪里出了问题?

此外,默认值应该是100秒,默认值下仍然会立即抛出异常。

来自WebException的确切消息:操作已超时

这条消息有别的意思吗?

以下行引发此异常:

HttpWebResponse response = newRequest.GetResponse() as HttpWebResponse;

更奇怪的是:它只在至少两台电脑上运行了大约半年。

我没能以可读的方式进入更大的代码(与编辑器的争论失败了(。但由于它之前刚刚起作用,我不知道什么会有任何意义。事实上,这个东西已经好几个月没有动了,只是起了作用。

几乎可以肯定是特定于连接另一端的网络/防火墙问题。于是突然出现的问题没有改变我的立场。

连接到其他服务器仍然有效。

但是有问题的服务器会导致一些随机连接问题。因此,我的猜测是,从应用程序的角度来看,连接在某种程度上是随机断开的。

我联系了管理员,如果得到确认,我会报告。

更新:几乎正确,忘记回答。决议是:支持Win7 端

现在很多人可能会问,为什么";几乎是防火墙问题";?

好吧,许多管理员从白名单中删除了Win7默认TLS的内容,所以他们的防火墙开始表现为";敌对的";针对这种类型的请求。基本上将其视为垃圾请求。

正确的解决方案是更改为支持的windows版本,因此.Net将默认为更广泛支持的标准。

换句话说,是的,服务器超时。服务器看到非白名单请求,所以显然可接受的响应并没有给它任何时间。导致这种看似不一致的超时行为。

最新更新