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通,没有用代理上网。以前能用,重装系统后就不行了。大家帮忙下,急!!!

解决方案 »

  1.   

    http://hi.baidu.com/tiankong912/blog/item/a4beedc4b86898ab8226acb3.html
    http://support.microsoft.com/kb/823177/zh-cn
      

  2.   

    看看防火墙关了吗? 有没有使用什么杀毒软件?IIS 配置是否正确呀(权限) 既然你说代理方面没有问题,差不多是以上三点问题了。 
      

  3.   

    1.你使用了防火墙或者你使用了代理服务器   
        
      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;   
      就是设置代理服务器的代码
      

  4.   

    1.你使用了防火墙或者你使用了代理服务器   
        
      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;   
      就是设置代理服务器的代码
      

  5.   

    看看WEB SERVER服务的IP是否改变了?代码里的代理类地址是否正确
      

  6.   

    ----------------
    这种情况不太可能,因为webservice的链接并不需要长时间链接===============================1,重新添加WebReference的引用;
    2,请检查你的WebService的ServiceUrl;
    3,检查tcpip的通讯;
    4,数据的交流时是否有异常,例如访问文件或数据库;
      

  7.   

    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 
    ==================================
    Tcpip的链接是要授信的操作,有的时候url无法访问,不要相信ip能ping通的掩盖错误;
      

  8.   

    PDA和PC机处于同一局网下,若在PC机发布WebService, 则PC机必须:
    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";
            }