关闭

.NET HttpWebResponse.GetResponse() 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。

1124人阅读 评论(0) 收藏 举报
分类:

原文地址:点击打开链接

在向同一个地址短时间内连续发送 HttpWebResponse.GetResponse() 的时候总会遇到 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。

遇到这种情况应该是http时间的问题,软件或硬件负载平衡环境包含那些支持 HTTP 1.1 和 keep-alive 连接, 服务器中承载 Web 服务调用可能具有终止按时间, 
客户端尝试重用该连接。

如果此错误仍然出现应用此修复程序后, 请尝试下列解决方案:(两种方式)

一、服务器上修改

1. 打开 MicrosoftInternet 信息服务器 (IIS) 管理控制台并找到 Web 服务器。
2. 单击 网站 选项卡的 属性 页为 Web 站点。
3. 单击以清除 保持连接 - 启用 HTTP 复选框。
 
二、代码上
可能需要禁用 keep-alive

1. 将 HttpWebRequest 类的 KeepAlive 属性设置 为 false 。
2. 改写由 MicrosoftVisualStudio.NET 生成有关 Web 客户端代理 Reference.cs 文件中 HttpWebRequest 方法。 
以下代码替代 HttpWebRequest 方法。

protected override WebRequest GetWebRequest(Uri uri)
{
   HttpWebRequest webRequest = (HttpWebRequest) 
   base.GetWebRequest(uri);
  webRequest.KeepAlive = false;
   return webRequest;
}

 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:234638次
    • 积分:2742
    • 等级:
    • 排名:第13607名
    • 原创:5篇
    • 转载:247篇
    • 译文:0篇
    • 评论:26条
    文章分类
    最新评论