基础连接已经关闭: 服务器关闭了本应保持活动状态的连接
最近开发的一个项目不断出现以下的错误
中文:
基础连接已经关闭: 服务器关闭了本应保持活动状态的连接
日文:
基になる接続が閉じられました: 維持される必要があった接続が、サーバーによって切断されました 場所 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)
場所 MitumoriDnpyNyryk.MitumoriDnpyNyrykService.MitumoriDnpyNyrykService.InsertUpdateData(String IExcInfo, String[] infoArgs, String[] rowGroup, String[] gyouNumGroup)
場所 MitumoriDnpyNyryk.frmMitumoriDnpyNyryk.btnMitumoritrk_Click(Object sender, EventArgs e)
是客户端连接WebService报的错,并不是一直错,而是平凡出现
请大家帮忙分析一下
[解决办法]
问题可能原因之一:网速的快慢,我经过测试,如果外网访问的话网速慢就是出现此类问题,但是我没有精确测出当在网络流量最低在什么情况下可以避免此类问题
问题可能之二:程序发布之前没把原引用的web service地址去掉再编译发布。
问题可能之三:检查自已的源代码
问题可能之四:用SQL2000要升级到SP4
解决:
首先将引用该WebServices的程序在IDE中打开;
然后在“解决方案资源管理器”中展开“web reference”——“webservices 名”——“Reference.map”——“
Reference.cs(.vb)”;
cs文件中添加如下代码:
using System.Net;
protected override WebRequest GetWebRequest( Uri uri)
...{
HttpWebRequest webRequest = ( HttpWebRequest)base.GetWebRequest(uri);
webRequest.KeepAlive = false;
webRequest.ProtocolVersion = HttpVersion.Version10;
return webRequest;
}
vb文件中添加如下代码:
Imports System.NET
Protected Overrides Function GetWebRequest()Function GetWebRequest(ByVal url As Uri) As WebRequest
Dim webrequest As HttpWebRequest = MyBase.GetWebRequest(url)
webrequest.KeepAlive = False
Return webrequest
End Function