您的位置:首页 > 其它

基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。(附带截图)

2015-01-20 15:32 1496 查看
前段时间开发.net 程序遇见这个问题,在此处分享一下解决方案。

 

出错坏境:

       .net程序给webservice接口传送数据时候,其中偶尔的一条或者几条会出现:

                   基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。

       获取错误完整信息如下:

     System.Net.WebException: 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。

   在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)

   在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)

   在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

   在 SAP.BLL.SAP_PI_IFS0030.SI_TMS_DELIVERYAUDITPRINT_OUT_SYNService.SI_TMS_DELIVERYAUDITPRINT_OUT_SYN(DT_TMS_DELIVERYAUDITPRINT_REQ    MT_TMS_DELIVERYAUDITPRINT_REQ) 位置 E:\01 LovolTMS Source\LOVOLTMS201501091201\SAP.BLL\Web References\SAP-PI-IFS0030\Reference.cs:行号
79

   在 SAP.BLL.BLLIFS0030.SendIFS0030(DataRow dr) 位置 E:\01 LovolTMS Source\LOVOLTMS201501091201\SAP.BLL\BLLIFS0030.cs:行号 36

 

解决办法:

    在vs2010 解决方案资源管理器 中 显示所有文件,Web References 下面所用引用下面的 Reference.map 下面的Reference.cs(如果还没找到看下面图片),打开Reference.cs文件

如果有GetWebRequest方法加上webRequest.KeepAlive = false;

没有就重写GetWebRequest,简单点就是把以下代码贴上去

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


加上之后问题就在没有出现过。

如果问题还没解决欢迎联系我

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐