Puncte:0

Eroare IIS 500 de la un anumit server

drapel us

Am întâlnit un pic de zid de cărămidă cu această problemă și sper că cineva cu ceva mai multă expertiză în această problemă poate fi de ajutor.

Facem un POST de la Serverul A la un API web găzduit pe un server client și obținerea următoarei excepții:

System.AggregateException: au apărut una sau mai multe erori. ---> System.Net.Http.HttpRequestException: A apărut o eroare la trimiterea cererii. ---> System.Net.WebException: Conexiunea de bază a fost închisă: A apărut o eroare neașteptată la o recepție. ---> System.IO.IOException: Imposibil de citit datele din conexiunea de transport: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corect după o perioadă de timp sau conexiunea stabilită a eșuat deoarece gazda conectată nu a răspuns. ---> System.Net.Sockets.SocketException: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corect după o perioadă de timp sau conexiunea stabilită a eșuat deoarece gazda conectată nu a reușit să răspundă
   la System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   la System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   la System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   la System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   la System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   la System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   la System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   la System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   la System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   la System.Threading.Tasks.Task`1.get_Result()
   la Infrastructure.Web.WebClient.WebClient.PostJson(String requestUri, Object para)
   la UtilityBelt.Operations.APICaller.btnPost_Click(Expeditorul obiectului, EventArgs e)
---> (Excepție internă #0) System.Net.Http.HttpRequestException: A apărut o eroare la trimiterea cererii. ---> System.Net.WebException: Conexiunea de bază a fost închisă: A apărut o eroare neașteptată la o recepție. ---> System.IO.IOException: Imposibil de citit datele din conexiunea de transport: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corect după o perioadă de timp sau conexiunea stabilită a eșuat deoarece gazda conectată nu a răspuns. ---> System.Net.Sockets.SocketException: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corect după o perioadă de timp sau conexiunea stabilită a eșuat deoarece gazda conectată nu a reușit să răspundă
   la System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   la System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   la System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   la System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   la System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- Sfârșitul urmăririi stivei de excepții interioare ---
   la System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   la System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- Sfârșitul urmăririi stivei de excepții interioare ---<---

Excepția apare la fiecare apel de la Serverul A, dar din anumite motive nu apare nicio excepție atunci când efectuați același apel din rețeaua mea locală sau alt server.

Văd că apelul de la Serverul A ajunge la IIS pe serverul clientului, dar se pare că nici măcar nu ajunge la controler în API-ul web. Iată intrarea de jurnal din fișierul jurnal IIS:

2021-08-12 02:06:06 192.168.0.2 POST /customerAPI/api/users/LocaliseUser - 7878 - 123.123.123.123 - - 500 0 64 129122

După ce m-am uitat o vreme, am activat urmărirea cererilor eșuate, dar nu am putut obține prea multe informații din fișierul produs care conținea o mulțime de informații detaliate și următoarele două avertismente:

Avertismente de urmărire

Am văzut că o posibilă explicație ar putea fi o excepție negestionată, dar adăugarea detaliilor despre gestionarea excepțiilor negestionate Aici nu a produs nicio informație suplimentară.

Aveți sugestii cu privire la ce ar trebui să mă uit în continuare pentru a restrânge cauza problemei?

Lex Li avatar
drapel vn
Acest tip de excepții de socket sunt destul de comune, deoarece stiva TCP/IP permite o anumită instabilitate. Ar trebui să vă proiectați codul astfel încât să vă așteptați/să gestionați corect acest lucru și să încercați din nou atunci când este necesar.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.