zoukankan      html  css  js  c++  java
  • System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse()

    System.Net.WebException: The operation has timed out  at System.Net.HttpWebRequest.GetResponse()

    在请求获取响应结果的时候,超时,具体原因可能就是如下面Jon Skeet所说,

    WebResponse implements IDisposable,
    so you should use a using statement for it (and for the StreamReader you create from the stream).
    If you leave a WebResponse open, it will take up a connection from the connection pool to that host,
    and you can end up with timeouts this way.
    WebResponse继承IDisposable接口,会释放非托管资源
    所以你需要使用声明来创建资源对象
    如果你打开WebResponse资源响应,那么他将通过连接池连接主机,使用这个方式,超时将不会成为问题。
    应该是这么翻译吧╮(╯_╰)╭

    This will close the stream and the response even if an exception is thrown, 
    so you'll always clean up the resources (in this case releasing the connection back to the pool) promptly.
    这个将会关闭stream和response,即使出现抛出异常的情况
    所以你总能够即时清理好资源(释放应用池的连接)

    这个方式,尝试了一下,暂时没出现什么问题,算解决了99%吧,等到以后再出现什么问题,再来看。

    下面是网上找到的一个解决方案:

    http://stackoverflow.com/questions/15493321/system-net-webexception-the-operation-has-timed-out-on-httpwebresponse

    Author:Jon Skeet

    System.Net.WebException: The operation has timed out on HttpWebResponse

    This may well be the problem:
    
    HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
    
    WebResponse implements IDisposable, so you should use a using statement for it (and for the StreamReader you create from the stream). If you leave a WebResponse open, it will take up a connection from the connection pool to that host, and you can end up with timeouts this way. The fixed code would look like this:
    
    string responseString;
    using (var response = myReq.GetResponse())
    {
        using (var reader = new StreamReader(response.GetResponseStream())
        {
            responseString = reader.ReadToEnd();
        }
    }
    
    This will close the stream and the response even if an exception is thrown, so you'll always clean up the resources (in this case releasing the connection back to the pool) promptly.
  • 相关阅读:
    SignalR客户端和服务端编写,winfrom端
    SQL 发送邮件msdb.dbo.sp_send_dbmail
    Stimulsoft打印内容横向,变成竖向,解决方法
    Chrome浏览器所有页面崩溃
    SQL存储过程直接传表
    c#SignalR一次发送最大数据量
    c#USB扫描枪,防止输入框手动输入
    SQLPrompt_9.5.5.9830破解版含注册机_永久激活不掉线
    SQL快捷键设置
    USB HDI 通信
  • 原文地址:https://www.cnblogs.com/danlis/p/5366967.html
Copyright © 2011-2022 走看看