我在第三次尝试调用HttpWebRequest.GetRequestStream时遇到超时问题。这是为了让调试代码测试第三方资源的间歇性问题,所以它只是一遍又一遍地发出相同的请求。
当使用Fidder作为代理时,这个问题不会表现出来,所以这让我相信它与连接池中的开放连接有关(我记得在某个地方读到过两次尝试与Http 1.1规范有关)。
很多问题都涉及到关闭请求和关闭响应,但我对这两者都有一个使用声明,所以我认为当超出范围时,这会自动发生。不过,我也尝试过在请求流和响应流上调用close和flush。
还有一些问题提到将ConnectionLeaseTimeout设置为0。但这也没用。
我不知道还能尝试什么,有人有什么建议吗?
在建立连接之前,您是否尝试将HttpWebRequest.HttpKeepAlive属性设置为false?
每个请求之间的间隔有多大?您是否可能遇到了某种旨在阻止DoS攻击的防火墙规则?