System.Net.HttpWebRequest无限运行

1 c#

我有这样的功能:

static void doAction(string link){
  Uri myUri = new Uri(link);
  HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ur) ;
  request.GetResponse();
 }
Run Code Online (Sandbox Code Playgroud)

在调用此函数2-3次之后,无论link的值如何,它总是返回WebException(请求超时已到期).

怎么了?

Jon*_*eet 5

您没有处置响应 - 这意味着如果多个URL转到同一主机,您将最终阻止连接池,直到这些响应被垃圾回收.

最简单的解决方法就是使用一个using语句:

using (request.GetResponse())
{
    // No-op
}
Run Code Online (Sandbox Code Playgroud)