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)
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.
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.
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é.