有时我得到以下错误,当我做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();

当前回答

最可能的原因是防火墙。

这篇文章包含了一组可能对您有用的原因。

从文章来看,可能的原因有:

FTP服务器设置 软件/个人防火墙设置 多种软件/个人防火墙 杀毒软件 LSP层 路由器固件 关闭电脑 电脑未插电 提琴手

其他回答

好吧,我今天在64位的Windows 8上突然收到了这个错误,这是第一次,原来我的my.ini被重置了,bin/mysqld文件被删除了,以及“Program Files/MySQL/MySQL Server 5.6”文件夹中的其他项目。

为了解决这个问题,我不得不再次运行MySQL安装程序,只安装服务器,并从“ProgramData/MySQL/MySQL server 5.6”中复制my.ini文件的最新版本,在我的情况下命名为my_2014-03-28T15-51-20.ini(不知道为什么最近会复制到那里)回到“Program Files/MySQL/MySQL server 5.6”中。

自从MySQL工作以来,系统唯一的变化是安装了Native Instruments的Traktor 2和Traktor Audio 2声卡,这真的不应该引起这个问题,除了我之外没有其他人使用过这个系统。如果有人有线索,请评论以防止我和其他遇到这种情况的人。

我从我的web层引用位于WCFHost上的服务时收到了这个错误。对我有效的方法可能并不适用于所有人,但我把这个答案留给那些可能适用的人。我的WCFHost的端口号是由IIS随机更新的,我只需要在我的web配置中更新到svc引用的结束路由。问题解决了。

在我的情况下,这是由一个错误的部署,在我的网络设置。没有配置。

一位同事解释说,错误消息中的IP地址代表本地主机。

当我修正网页的时候。我当时使用正确的url进行服务器调用,它工作。

我想我应该把这个贴出来,也许能帮助到一些人。

转到你的WCF项目- 属性- > -> 调试器 ->取消复选框的标记

启用“编辑并继续”

最可能的原因是防火墙。

这篇文章包含了一组可能对您有用的原因。

从文章来看,可能的原因有:

FTP服务器设置 软件/个人防火墙设置 多种软件/个人防火墙 杀毒软件 LSP层 路由器固件 关闭电脑 电脑未插电 提琴手