WebException: Nu se poate conecta la serverul de la distanță (Programare, C#, Servicii Web, Prize, Excepție)

Yared a intrebat.

Am o aplicație client care utilizează WebHttpRequest pentru a obține un răspuns de la un server extern, funcționează bine, dar uneori primesc următoarea excepție ….

System.Net.WebException: Nu se poate conecta la serverul de la distanță —> System.Net.Sockets.SocketException: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corespunzător după o perioadă de timp, sau conexiunea stabilită a eșuat deoarece gazda conectată nu a reușit să răspundă xx.xx.xxx.xxx:xxx 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) — Sfârșitul urmăririi stivei de excepții interne —

at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)

at System.Net.HttpWebRequest.GetRequestStream()

…. Orice ajutor?

1 răspunsuri
Evan Mulawski

Aceasta este mai degrabă o eroare de tip „Request Timed Out”. Serverul la care încerci să te conectezi nu a răspuns la cererea ta. Ar trebui să gestionați această excepție folosind try-catch și să încercați să vă conectați n de mai multe ori în blocul catch.

Comentarii

  • Am încercat și eu să măresc timeout-ul, dar nu s-a rezolvat. Funcționează pentru un număr de cereri, dar în mijlocul mai multor tranzacții reușite, această excepție este ridicată și nu are nici un model de timp sau număr de tranzacții eșuate. –  > Por Yared.
  • Acum primesc o eroare specifică System.Net.WebException: Conexiunea de bază a fost închisă: A apărut o eroare neașteptată la o trimitere. —> System.IO.IOException: Autentificarea a eșuat deoarece partea de la distanță a închis fluxul de transport. at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest). — Sfârșitul urmăririi stivei de excepții interne — – –  > Por Yared.
  • Se pare că serverul este problema, nu codul tău. Este posibil ca serverul să ceară ca anumite opțiuni să fie setate în timpul conexiunii. –  > Por Evan Mulawski.
  • Mulțumesc Evan. da, se pare că este de partea lor (webserver), nu în codul clientului. –  > Por Yared.