2010-10-22 8 views
4

J'ai une application cliente qui utilise WebHttpRequest pour obtenir la réponse du serveur externe, il fonctionne très bien, mais quelques fois je commence à l'exception suivante ....WebException: Impossible de se connecter au serveur distant

System.Net.WebException: Impossible de connecter au serveur distant ---> System.Net.Sockets.SocketException: une tentative de connexion a échoué car le parti connecté n'a pas correctement répondre après une période de temps, ou la connexion établie a échoué car l'hôte connecté n'a pas répondu xx.xx.xxx.xxx:xxx à System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress SocketAddress) à System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP) à système. Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, socket s4, s6 socket, & socket, IPAddress & adresse, état ConnectSocketState, IAsyncResult asyncResult, temporisation Int32, exception & exception) --- Fin de intérieure pile d'exception trace ---

à System.Net.HttpWebRequest.GetRequestStream (TransportContext & contexte)

à System.Net.HttpWebRequest.GetRequestStream()

.... Toute aide?

Répondre

3

Il s'agit plutôt d'une erreur "Demande expirée". Le serveur auquel vous essayez de vous connecter n'a pas répondu à votre requête. Vous devriez gérer cette exception en utilisant try-catch et essayer de vous connecter n nombre de fois encore dans le bloc catch.

+0

J'ai essayé en augmentant le délai, mais pas résolu. Cela fonctionne pour un certain nombre de demandes, mais au milieu de nombreuses transactions réussies, cette exception est déclenchée et n'a pas le temps ou le nombre de modèles d'échec de transaction. – Yared

+0

Maintenant, je reçois une erreur spécifique System.Net.WebException: La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur un envoi. ---> System.IO.IOException: l'authentification a échoué car la partie distante a fermé le flux de transport. à System.Net.Security.SslState.StartReadFrame (Byte [] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) à System.Net.Security.SslState.StartReceiveBlob (tampon Byte [], asyncProtocolRequest asyncRequest). --- Fin de la trace de pile d'exception interne --- – Yared

+0

Il semble que le serveur soit le problème, pas votre code. Le serveur peut nécessiter certaines options lors de la connexion. –

Questions connexes