【发布时间】:2010-11-19 00:15:00
【问题描述】:
我已经设置了HttpWebRequest 的 Timeout 和 ReadWriteTimeout,但在尝试连接到不存在的服务器时,GetRequestStream 仍然没有超时。过去当 DNS 解析被触发时,我也遇到过类似的问题,但这次有问题的服务器在我自己的机器(本地主机)上运行,所以这无关紧要。
场景是这样的:
- 我提升我的服务器
- 我成功连接到它,执行 POST,并关闭请求/响应流
- 我杀死了服务器
- 我尝试再次连接,并希望我会达到我设置的超时时间
此时线程挂起。我尝试将 KeepAlive 设置为 false,但这没有帮助。
我考虑过在单独的线程中运行上述场景,如果它需要太长时间,我自己将其杀死 - 但是这个解决方案非常丑陋并且不会防止资源泄漏。
【问题讨论】:
标签: .net http httpwebrequest timeout connection