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

前段时间开发.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;
        }


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

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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值