无法建立连接,因为目标机器主动拒绝它 127.0.0.1

Posted

技术标签:

【中文标题】无法建立连接,因为目标机器主动拒绝它 127.0.0.1【英文标题】:No connection could be made because the target machine actively refused it 127.0.0.1 【发布时间】:2015-04-05 10:31:51 【问题描述】:

我尝试使用 WebRequest 类连接到托管在不同服务器上的 Web 服务。 Web 服务返回一个字符串作为响应。这样做时我得到一个错误:

"System.Net.Sockets.SocketException: 无法建立连接 因为目标机器主动拒绝了”

System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException:无法建立连接 因为目标机器在 127.0.0.1:14012 处主动拒绝了它 System.Net.Sockets.Socket.DoConnect(端点 endPointSnapshot, SocketAddress socketAddress) 在 System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败, Socket s4, Socket s6, Socket&socket, IPAddress&地址, ConnectSocketState 状态、IAsyncResult asyncResult、Exception& 异常)---内部异常堆栈跟踪结束---在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& 上下文) 在 System.Net.HttpWebRequest.GetRequestStream() 在 Limoallover.InsertSoapEnvelopeIntoWebRequestUS(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest) 在 Limoallover.dawUpdateDriverStatus(字符串 apiId,字符串 apiKey,字符串 idTrip,字符串tripCode,字符串状态码)在 Limoallover.UpdateJobStatus(String Lat, String Lng, Int32 DriverID, Int32 nJobStatus,Int32 nJobId,字符串 CompanyID,字符串 idTrip, 字符串tripCode,字符串状态码)

private  HttpWebRequest CreateWebRequestUS(string url, string action)

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Headers.Add("SOAPAction", action);
    webRequest.ContentType = "text/xml;charset=\"utf-8\"";
    webRequest.Accept = "text/xml";
    webRequest.Method = "POST";
    return webRequest;


private  XmlDocument CreateSoapEnvelopeUS(string apiId, string apiKey, string idTrip, string tripCode, string statusCode)

    XmlDocument soapEnvelop = new XmlDocument();

    string xml = "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";

    xml = xml + @"<soap:Body>";
    xml = xml + "<UpdateTripStatus xmlns=\"https://book.mylimobiz.com/api\">";
    xml = xml + @"<apiId>" + apiId + "</apiId>";
    xml = xml + @"<apiKey>" + apiKey + "</apiKey>";
    xml = xml + @"<idTrip>" + idTrip + "</idTrip>";
    xml = xml + @"<tripCode>" + tripCode + "</tripCode>";
    xml = xml + @"<statusCode>" + statusCode + "</statusCode>";
    xml = xml + @"</UpdateTripStatus>";
    xml = xml + @"</soap:Body>";
    xml = xml + @"</soap:Envelope>";



    soapEnvelop.LoadXml(xml);
    return soapEnvelop;


private static void InsertSoapEnvelopeIntoWebRequestUS(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest)

    using (Stream stream = webRequest.GetRequestStream())
    
        soapEnvelopeXml.Save(stream);
    

【问题讨论】:

127.0.0.1 对我来说似乎不是不同的服务器? 127.0.0.1 重定向回您自己的计算机。防火墙问题? 127.0.0.1 是您的本地机器,也就是“localhost”。 确保您指向正确的网络服务地址 从命令窗口运行 netstat -ano 以查看是否有任何东西正在侦听该地址/端口。 【参考方案1】:

六天后,我找到了让我抓狂的答案!答案是在 web.config 文件中禁用代理:

<system.net>
  <defaultProxy> 
    <proxy usesystemdefault="False"/> 
  </defaultProxy>
</system.net>

【讨论】:

从您的回答中无法理解我们是否应该禁用或启用以解决它 补充艾哈迈德的回答 谢谢你,我的男人!!!!只是为了添加到@Abhijeet 评论, 我们将该代码放在 web 配置中的位置 非常感谢!我忘记了 4 个小时...但我不明白为什么我的互联网选项已更改...【参考方案2】:

异常消息表明您正在尝试连接到同一主机 (127.0.0.1),而您却说明您的服务器在不同的主机上运行。除了一些明显的错误,比如在 url 中有“localhost”,或者你可能想要检查你的 DNS 设置。

【讨论】:

【参考方案3】:

防火墙阻止了连接或托管服务的进程未在该端口上侦听。或者它正在侦听不同的端口。

【讨论】:

当我关闭防火墙时出现同样的问题【参考方案4】:

我遇到了类似的问题,尝试在 VisualStudio 2013 下的 Debug 中运行基于 WCF 的 HttpSelfHostServer。我尝试了所有可能的方向(关闭防火墙,完全禁用 IIS 以消除 localhost 端口被其他人占用的可能性服务等)。

最终,“成功”(解决了问题)是以 Administrator 身份重新运行 VisualStudio 2013。

太棒了。

【讨论】:

【参考方案5】:

当我启动 Fiddler 时,这个问题就消失了。 在出现问题之前在我的机器上使用它。 可能是 Fiddler 作为代理。

【讨论】:

【参考方案6】:

我在以前运行良好的网站上遇到了同样的问题。我通过删除C:\WINDOWS\Microsoft.NET\Framework\v#.#.#####\Temporary ASP.NET Files\@projectName\###CC##C\###C#CC中的临时文件解决了这个问题

【讨论】:

【参考方案7】:

运行删除临时文件 > %temp%

并以管理员身份运行打开 VS2015,

它对我有用。

【讨论】:

【参考方案8】:

如果您有配置文件转换,请确保您在发布配置文件中选择了正确的配置。 (发布 > 设置 > 配置)

【讨论】:

【参考方案9】:

遇到同样的问题,原来是 Windows 防火墙阻止了连接。尝试禁用 WindowsFirewall 一段时间,看看是否有帮助,如果是问题,请根据需要打开端口。

【讨论】:

感谢您的回复,但同样的错误也出现了 好的,请记住,主动拒绝意味着客户端已连接并由于某种原因被关闭,因此问题必须是服务器上的某些策略或类似的东西;不要对客户端配置生气,这可能没问题 这让我发疯了,你可以给我看看你可以通过teamviewer连接到我的mac 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 @DavidGrinberg 这就是我的答案,我分享了它。【参考方案10】:

如果您在 Fiddler 运行时遇到此问题 -> 在 Fiddler 中,请转到“规则”并禁用“自动验证”,它应该会再次运行。

【讨论】:

【参考方案11】:

为代理设置添加 new WebProxy(),您将在其中创建网络请求。

示例:-

  string url =  "Your URL";
  System.Net.WebRequest req = System.Net.WebRequest.Create(url);
  req.Proxy = new WebProxy();
  System.Net.WebResponse resp = req.GetResponse();

req.Proxy = new WebProxy() 处理代理设置并帮助代码正常工作。

【讨论】:

以上是关于无法建立连接,因为目标机器主动拒绝它 127.0.0.1的主要内容,如果未能解决你的问题,请参考以下文章

TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732

无法建立连接,因为目标计算机主动拒绝它127.0.0.1:3446

无法建立连接,因为目标计算机主动拒绝它127.0.0.1:63591

连接被对方​​拒绝:10061:无法建立连接,因为目标机器主动拒绝它

.NET 4 新的 TCP 客户端无法连接:无法建立连接,因为目标机器主动拒绝它

“无法建立连接,因为目标机器主动拒绝它” Nethereum 异常