如何正确关闭HttpRequest / Response以避免第三次连接尝试超时

时间:2012-12-10 12:42:24

标签: .net httpwebrequest httpwebresponse

第三次尝试调用HttpWebRequest.GetRequestStream时遇到超时问题。这是用于调试代码来测试第三方资源的间歇性问题,因此它只是一遍又一遍地发出相同的请求。

当使用Fidder作为代理时,这个问题并没有表现出来,所以这让我相信它与连接池中的开放连接有关(我记得在某处看到两次尝试与Http 1.1有关)规格)。

有很多问题涉及关闭请求和closing the response,但我有一个围绕两者的使用声明,所以认为当它超出范围时会自动发生。但是我也尝试在请求和响应流上调用close和flush。

还有一些问题提到setting the ConnectionLeaseTimeout为0.但这也不起作用。

我不确定还有什么可以尝试的,有没有人有任何建议?

2 个答案:

答案 0 :(得分:0)

在建立连接之前,您是否尝试将HttpWebRequest.HttpKeepAlive属性设置为false?

答案 1 :(得分:0)

每个请求之间有多少差距?您是否有可能遇到某种旨在阻止DoS攻击的防火墙规则?