web-dev-qa-db-ja.com

ターゲットマシンがアクティブに拒否したため、接続できませんでした127.0.0.1

WebRequestクラスを使用して、別のサーバーでホストされているWebサービスに接続しようとしました。 Webサービスは、文字列を応答として返します。そうしているときにエラーが発生します:

「System.Net.Sockets.SocketException:ターゲットマシンが積極的に拒否したため、接続できませんでした」

System.Net.WebException:リモートサーバーに接続できません---> System.Net.Sockets.SocketException:ターゲットマシンがSystem.Net.Sockets.Socketで127.0.0.1:14012を積極的に拒否したため、接続できませんでした.DoConnect(EndPoint endPointSnapshot、SocketAddress socketAddress)at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure、Socket s4、Socket s6、Socket&socket、IPAddress&address、ConnectSocketState state、IAsyncResult asyncResult、Exception&exception)---内部例外スタックの終わりtrace --- System.Net.HttpWebRequest.GetRequestStream()でSystem.Net.HttpWebRequest.GetRequestStream(TransportContext&context)でLimoallover.InsertSoapEnvelopeIntoWebRequestUS(XmlDocument soapEnvelopeXml、HttpWebRequest webRequest)でLimoallover.dawUpdateDriverStatus(String apiId、String apiKey、String ripKey、 Limoallover.UpdateJobStatus(String Lat、String Lng、Int32 DriverID、Int32 nJobStatus、Int32 nJobId、String Company)のString tripCode、String statusCode) ID、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);
    }
}
19
Ahmed Said

6日後、私は私を夢中にさせる答えを見つけました!答えはweb.configファイルでプロキシを無効にすることです:

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

例外メッセージは、同じホスト(127.0.0.1)に接続しようとしているが、サーバーが別のホストで実行されていることを示していることを示しています。 URLに「localhost」が含まれるなどの明らかなバグや、DNS設定を確認したい場合もあります。

6
michaelb

Fiddlerを起動すると、この問題はなくなりました。問題が発生する前に私のマシンで使用していました。おそらくFiddlerがプロキシである何か。

1
Siarhei Bialko

Visual Studio 2013でのデバッグでWCFベースの HttpSelfHostServer を実行しようとすると、同様の問題が発生しました。可能なすべての方向を試しました(ファイアウォールをオフにし、IIS localhostポートが他のサービスなどによって使用される可能性を排除するため)。

最終的に、「トリックをやった」(問題を解決した)ことは、VisualStudio 2013をAdministratorとして再実行することでした。

すごい。

1
datps

以前は正常に動作していたサイトでも同じ問題が発生しました。 C:\WINDOWS\Microsoft.NET\Framework\v#.#.#####\Temporary ASP.NET Files\@proyectName\###CC##C\###C#CCから一時ファイルを削除することで問題を解決しました

1
Enio de León

接続をブロックしているファイアウォールがあるか、サービスをホストしているプロセスがそのポートでリッスンしていない。または、別のポートでリッスンしています。

1
husnain_sys

実行による一時ファイルの削除>%temp%

そして、管理者として実行してVS2015を開き、

わたしにはできる。

0
Saurin Vala

Fiddlerの実行中にこれがある場合-> Fiddlerで、「ルール」に移動して「自動認証」を無効にすると、再び機能するはずです。

0
Immi

config file transformsがある場合、パブリッシュプロファイル内で正しい構成が選択されていることを確認してください。 (公開>設定>構成)

0
Ian

同じ問題があった場合、Windowsファイアウォールが接続をブロックしていることが判明しました。 Windowsファイアウォールをしばらく無効にして、問題が解決するかどうか、必要に応じてポートを開くかどうかを確認してください。

0
Mauro Sampietro

Web要求を作成するプロキシ設定に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()プロキシ設定を処理し、コードが正常に機能するようにします。

0
Aakash Singh