System.Net.WebException: 基础连接已经关闭: 无法连接到远程服务器。 at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetRequestStream() at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at It.Support.WebUi.OrganServices.OrganServices.SignIn(String userName, String password) in c:\inetpub\wwwroot\supportnew\Web References\OrganServices\Reference.cs:line 38 at It.Support.WebUi.Pages.SignIn.Local_SignIn(String urlStr) in c:\inetpub\wwwroot\supportnew\pages\signin.aspx.cs:line 96用IE打地址可以访问WebService,服务器IP也能Ping通,没有用代理上网。以前能用,重装系统后就不行了。大家帮忙下,急!!!
http://support.microsoft.com/kb/823177/zh-cn
2.原因是webservice的基础连接有它的存活周期
如果在这段时间内没有任何数据信息传输,则IIS服务会自动关闭该连接
解决办法是定时与服务器取得联系使连接一直被保持
也可以将超时时间设置长一点
如果在要通过代理服务器去访问webservice,需要在客户端为webservice的代理类指定代理服务器。
这样我访问http://www.webservicex.net/globalweather.asmx时vs.net的生成的代理类的代码,我的代理服务器没有用户名和密码我没法试,不代密码的方法:
其中
System.Net.WebProxy myProxy
=new System.Net.WebProxy("192.1.1.1",8080);
this.Proxy=myProxy;
就是设置代理服务器的代码
2.原因是webservice的基础连接有它的存活周期
如果在这段时间内没有任何数据信息传输,则IIS服务会自动关闭该连接
解决办法是定时与服务器取得联系使连接一直被保持
也可以将超时时间设置长一点
如果在要通过代理服务器去访问webservice,需要在客户端为webservice的代理类指定代理服务器。
这样我访问http://www.webservicex.net/globalweather.asmx时vs.net的生成的代理类的代码,我的代理服务器没有用户名和密码我没法试,不代密码的方法:
其中
System.Net.WebProxy myProxy
=new System.Net.WebProxy("192.1.1.1",8080);
this.Proxy=myProxy;
就是设置代理服务器的代码
这种情况不太可能,因为webservice的链接并不需要长时间链接===============================1,重新添加WebReference的引用;
2,请检查你的WebService的ServiceUrl;
3,检查tcpip的通讯;
4,数据的交流时是否有异常,例如访问文件或数据库;
==================================
Tcpip的链接是要授信的操作,有的时候url无法访问,不要相信ip能ping通的掩盖错误;
1 关闭Windows 防火墙,
2 开放80端口
3 添加WebService时,用IP替换掉原来的locahost(我指Reference.cs文件里)
4 添加引用时,直接添加在PC机上发布的WebService(而不是解决方案中的.)总之: 发布在PC机上的WebService,要在PDA上能用浏览器打开,当然其它PC机也能打开WebService,则为OK。
注: 如果还是调试出错,则把你报错的reference.cs 文件里,用PC机的IP地址替换掉原来的:
例如:
原来的: /// <res/>
public Service1() {
this.Url = "http://localhost/pda/GoodsInfoService.asmx";
}
替换为:
public Service1() {
this.Url = "http://192.168.1.168/pda/GoodsInfoService.asmx";
}