system.net.webeexception:操作超时
本文关键字:操作 超时 webeexception net system | 更新日期: 2023-09-27 18:04:49
当我发送短信到多个客户端它给出了一个错误的操作超时和错误是在HttpWebResponse
我试过了myReq。超时= 50000;myReq。ReadWriteTimeout = 50000;
但是在第150行出现相同的错误
Line 148: myReq.Timeout = 50000;
Line 149: myReq.ReadWriteTimeout = 50000;
Line 150: HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
Line 151: System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
Line 152: string responseString = respStreamReader.ReadToEnd();
这可能就是问题所在:
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
WebResponse
实现了IDisposable
,所以您应该为它使用using
语句(以及您从流中创建的StreamReader
)。如果让WebResponse
打开,它将占用连接池到该主机的连接,这样可能会导致超时。修复后的代码看起来像这样:
string responseString;
using (var response = myReq.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream())
{
responseString = reader.ReadToEnd();
}
}
这将关闭流和响应,即使抛出异常,所以您总是可以及时清理资源(在本例中,将连接释放回池)。