无法建立连接,因为目标机器主动拒绝它 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>
【讨论】:
从您的回答中无法理解我们是否应该禁用或启用以解决它 补充艾哈迈德的回答异常消息表明您正在尝试连接到同一主机 (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:无法建立连接,因为目标机器主动拒绝它