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

时间:2015-02-05 14:12:44

标签: c# asp.net .net sockets

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

  

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

     

System.Net.WebException:无法连接到远程服务器--->   System.Net.Sockets.SocketException:无法建立连接   因为目标机器主动拒绝它127.0.0.1:14012 at   System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,   SocketAddress(socketAddress)at   System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,   插座s4,插座s6,插座& socket,IPAddress&地址,   ConnectSocketState状态,IAsyncResult asyncResult,Exception&   例外)---内部异常堆栈跟踪结束--- at   System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)   在System.Net.HttpWebRequest.GetRequestStream()处   Limoallover.InsertSoapEnvelopeIntoWebRequestUS(XmlDocument的   soapEnvelopeXml,HttpWebRequest webRequest)at   Limoallover.dawUpdateDriverStatus(String apiId,String apiKey,String   idTrip,String tripCode,String statusCode)at   Limoallover.UpdateJobStatus(String Lat,String Lng,Int32 DriverID,   Int32 nJobStatus,Int32 nJobId,String CompanyID,String idTrip,   String tripCode,String statusCode)

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);
    }
}

11 个答案:

答案 0 :(得分:29)

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

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

答案 1 :(得分:6)

异常消息表明您正在尝试连接到同一主机(127.0.0.1),而您却声明您的服务器正在另一台主机上运行。除了明显的错误,比如拥有&#34; localhost&#34;在网址中,或者您可能想要查看DNS设置。

答案 2 :(得分:1)

有阻止连接的防火墙或托管该服务的进程未在该端口上侦听。或者它正在侦听另一个端口。

答案 3 :(得分:1)

我之前运行正常的网站遇到了同样的问题。我通过删除C:\WINDOWS\Microsoft.NET\Framework\v#.#.#####\Temporary ASP.NET Files\@proyectName\###CC##C\###C#CC

中的临时文件解决了该问题

答案 4 :(得分:1)

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

最终,“诀窍”(解决了问题)是以管理员重新运行VisualStudio 2013。

惊人的。

答案 5 :(得分:1)

当我开始提琴手时,这个问题就消失了。 在遇到问题之前在我的机器上使用它。 可能是Fiddler代理的东西。

答案 6 :(得分:0)

出现同样的问题,原来是WindowsFirewall阻塞连接。尝试禁用WindowsFirewall一段时间以查看是否有帮助,如果问题是根据需要打开端口。

答案 7 :(得分:0)

按运行&gt;删除临时文件%TEMP%

以管理员身份打开VS2015,

它对我有用。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

如果你在Fiddler正在运行时有这个 - &gt;在Fiddler中,转到“规则”并禁用“自动验证”,它应该再次起作用。

答案 10 :(得分:0)

为创建Web请求的代理设置添加新的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()的地方处理代理设置并帮助代码正常工作。