当我在调用.Abort()之后调用请求的GetResponseAsync()方法时,请求仍然不会立即中止。在中止实际发生之前有显著的延迟(2-3秒)。
正如看起来的那样,HttpWebRequest首先解析主机名并建立连接。因此,如果主机名错误,或者DNS服务器死了,或者主机本身没有响应,.Abort()需要很长时间才能关闭连接并中止请求。
是否有办法立即中止操作并关闭连接而不等待这些操作(主机名查找、主机连接设置等)才能完成?
发布于 2014-01-25 22:26:05
DNS解析是同步进行的,中止在完成(或失败)之前是不会有效的。除了在单独的线程中执行请求并在需要中止时“忘记”请求之外,您无能为力。
https://stackoverflow.com/questions/21356773
复制相似问题