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:57240 sur System.Net.Sockets.Socket.

Je développe un service Web et un service Windows, le service Web que j'ai déployé se trouve sur un autre serveur et le service Windows que j'ai déployé fonctionne sur mon propre serveur. J'utilise donc le service Windows pour appeler le service Web. Tout allait bien, mais dans quelques jours, j'ai reçu le message ci-dessous:

System.Net.WebException: Unable to connect to the remote server ---> 
System.Net.Sockets.SocketException: No connection could be made 
because the target machine actively refused it 127.0.0.1:57240
at 
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress 
socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4,Socket 
s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace -
-- at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
4
Mohammad Bahsoun

parce que la machine cible l'a activement refusée 127.0.0.1:57240

La "machine cible" dans ce cas est la machine sur laquelle le code défaillant est exécuté. Not la machine distante. 127.0.0.1 est l'adresse IP de "localhost", vous l'utilisez pour que deux processus s'exécutant sur la machine same / se parlent via des sockets. Ce n’est pas inhabituel, cela peut être une alternative plus facile à l’utilisation de pipes nommées par exemple.

Mais bien sûr, vous vous attendez à ce qu'il se connecte à une autre machine, une application disposant d'une application. Quelque chose ne va pas avec la configuration de votre programme, il essaie de se connecter à un service qui n'existe pas. On ne sait pas comment cela aurait pu se passer. Votre question manque tous les détails sur la manière dont vous avez sélectionné la machine cible. Si vous l'avez sélectionné par nom plutôt que par adresse IP, le service d'attribution de noms sur votre réseau local a un problème. Ou vous avez simplement oublié de changer la configuration lorsque vous êtes passé du mode test au mode déploiement. Ou vous avez cessé d'essayer un tas de choses qui ne fonctionnaient pas parce que le pare-feu bloque l'accès.

3
Hans Passant

Je pense que vous devez vérifier vos paramètres de proxy dans les "options Internet". Si vous utilisez des applications proxy/'hide ip', ce problème peut se produire.

Dans mon cas, j'ai changé les paramètres de proxy.

0
isaeid

Le port 57240 ressemble au port d'application d'un client, votre application serveur s'exécutant probablement sur un port inférieur. On dirait donc que le client est tombé en panne et que le socket de communication a été fermé.

0
Pawel Miechowiecki