web-dev-qa-db-fra.com

Aucune connexion n'a pu être établie car la machine cible l'a activement refusée 127.0.0.1

J'essaie de me connecter à un service Web hébergé sur un serveur différent à l'aide de la classe WebRequest. Le service Web renvoie une chaîne en tant que réponse. Ce faisant, je reçois une erreur: 

"System.Net.Sockets.SocketException: aucune connexion n'a pu être établie Car la machine cible l'a activement refusée"

System.Net.WebException: Impossible de se connecter au serveur distant ---> System.Net.Sockets.SocketException: Aucune connexion n'a pu être établie parce que la machine cible l'a activement refusé 127.0.0.1:14012 à System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) à l'adresse System.Net.ServicePoint.ConnectSocketInternal (connectivité booléenne, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state, IAsyncResult asyncResult, Exception & Exception) --- Fin de la trace de la trace d'une exception interne --- à System.Net.HttpWebRequest.GetRequestStream (TransportContext & context) à System.Net.HttpWebRequest.GetRequestStream () à Limoallover.InsertSoapEnvelopeIntoWebRequestUS (XmlDocument SoapEnvelopeXml, HttpWebRequest webRequest) à Limoallover.dawUpdateDriverStatus (String apiId, String apiKey, String IdTrip, String tripCode, String statusCode) à l'adresse Limoallover.UpdateJobStatus (Chaîne Lat, Chaîne Lng, Identifiant de pilote Int32, IntJobStatus Int32, IntJnIob ID, String, Identifiant de la société, String idTrip, 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

Après six jours, je trouve la réponse qui me rend fou! La réponse est désactiver le proxy dans le fichier web.config:

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

Le message d'exception indique que vous essayez de vous connecter au même hôte (127.0.0.1), tandis que vous indiquez que votre serveur s'exécute sur un autre hôte. Outre les bugs évidents comme avoir "localhost" dans l'URL, ou peut-être que vous voudrez peut-être vérifier vos paramètres DNS.

6
michaelb

Le problème a disparu pour moi lorsque j'ai créé Fiddler… .. Je l'utilisais sur ma machine avant d'avoir le problème… .. Probablement quelque chose dans lequel Fiddler est un proxy.

1
Siarhei Bialko

J'ai eu un problème similaire, en essayant de lancer un HttpSelfHostServer in basé sur WCF sous Debug sous VisualStudio 2013. J'ai essayé tous les sens possibles (désactiver le pare-feu, désactivant IIS complètement pour éviter la prise du port localhost par un autre service, etc.).

Finalement, ce qui a fonctionné (le problème résolu) a été de réexécuter VisualStudio 2013 en tant que Administrator

Incroyable.

1
datps

J'ai eu le même problème avec un site qui fonctionnait bien auparavant. J'ai résolu le problème en supprimant les fichiers temporaires de C:\WINDOWS\Microsoft.NET\Framework\v#.#.#####\Temporary ASP.NET Files\@proyectName\###CC##C\###C#CC

1
Enio de León

Un pare-feu bloque la connexion ou le processus hébergeant le service n'écoute pas sur ce port. Ou il écoute sur un autre port.

1
husnain_sys

Supprimer les fichiers temporaires par exécution>% temp%

Et ouvrez VS2015 en tant qu’administrateur,

ça marche pour moi.

0
Saurin Vala

Si vous avez cela pendant que Fiddler est en cours d'exécution -> dans Fiddler, allez à «Règles» et désactivez «Authentifier automatiquement» et cela devrait fonctionner à nouveau.

0
Immi

Si vous avez le fichier config transformé, assurez-vous que la configuration correcte est sélectionnée dans votre profil de publication. (Publier> Paramètres> Configuration)

0
Ian

Avec le même problème, il s’est avéré que c’était le pare-feu Windows qui bloquait les connexions. Essayez de désactiver le Pare-feu Windows pendant un certain temps pour voir si cela vous aide et si le problème existe, ouvrez les ports au besoin.

0
Mauro Sampietro

Ajoutez new WebProxy () pour le paramètre de proxy dans lequel vous créez une demande Web.

Exemple :-

  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 () gère le paramètre de proxy et aide le code à fonctionner correctement.

0
Aakash Singh