有时我得到以下错误,当我做HttpWebRequest到一个WebService。我也复制了下面的代码。


System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:80
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetRequestStream()

ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.PreAuthenticate = true;
request.Credentials = networkCredential(sla);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = v_Timeout * 1000;

if (url.IndexOf("asmx") > 0 && parStartIndex > 0)
{
    AppHelper.Logger.Append("#############" + sla.ServiceName);

    using (StreamWriter reqWriter = new StreamWriter(request.GetRequestStream()))
    {                        
        while (true)
        {
            int index01 = parList.Length;
            int index02 = parList.IndexOf("=");

            if (parList.IndexOf("&") > 0)
                index01 = parList.IndexOf("&");

            string parName = parList.Substring(0, index02);
            string parValue = parList.Substring(index02 + 1, index01 - index02 - 1);

            reqWriter.Write("{0}={1}", HttpUtility.UrlEncode(parName), HttpUtility.UrlEncode(parValue));

             if (index01 == parList.Length)
                 break;

             reqWriter.Write("&");
             parList = parList.Substring(index01 + 1);
         }
     }
 }
 else
 {
     request.ContentLength = 0;
 }

 response = (HttpWebResponse)request.GetResponse();

当前回答

用于解决方案中的服务引用。

重新启动工作站 重新构建解决方案 更新WCFclient项目中的服务引用

此时,我收到消息(Windows 7)允许系统访问。 然后正确地更新了服务引用,没有出现错误。

其他回答

我忘记启动服务,所以它失败了,因为没有服务正在监听端口。 通过启动服务来解决。

这里还有一件事要检查,我犯这个错误的次数比我愿意承认的多:你是试图连接https还是http?我以为我有一些模糊的证书问题,但结果是我忘记了我的URL定义中的s。总是先检查基础!

在我的例子中,有些域名可以使用,而有些则不行。在我的网页中添加对我的组织的代理Url的引用。配置修复了这个问题。

<system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy proxyaddress="http://proxy.my-org.com/" usesystemdefault="True"/>
    </defaultProxy>
</system.net>

我也有。这是因为web服务的端口号意外地发生了变化。

当您有多个项目副本时,通常会发生此问题

我的项目正在使用我在Web中分配的特定端口号调用Web服务。配置文件我的主要项目文件。由于端口号意外更改,浏览器无法找到Web服务并抛出该错误。

我通过以下步骤解决了这个问题:(Visual Studio 2010)

进入Web服务项目的属性—>单击Web选项卡—>在服务器部分—>检查特定端口 然后分配主项目调用web服务时使用的标准端口号。

我希望这能解决问题。

欢呼:)

我有同样的错误与我的WCF服务使用Net TCP绑定,但解决后启动以下服务在我的情况。

Net.Pipe.Listener.Adapter

Net.TCP.Listener.Adapter

网Tcp端口共享服务