Рейтинг:0

Ошибка IIS 500 с определенного сервера

флаг us

Я наткнулся на кирпичную стену с этой проблемой и надеюсь, что кто-то с большим опытом в этом вопросе может помочь.

Мы делаем POST от Сервер А к веб-API, размещенному на клиентском сервере, и получая следующее исключение:

System.AggregateException: произошла одна или несколько ошибок. ---> System.Net.Http.HttpRequestException: Произошла ошибка при отправке запроса. ---> System.Net.WebException: базовое соединение было закрыто: при получении произошла непредвиденная ошибка. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный период времени, или установленное соединение не удалось, поскольку подключенный хост не ответил. ---> System.Net.Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный период времени, или установленное соединение не удалось, потому что подключенный хост не ответил
   в System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   в System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- Конец внутренней трассировки стека исключений ---
   в System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   в System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   в System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- Конец внутренней трассировки стека исключений ---
   в System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
   в System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- Конец внутренней трассировки стека исключений ---
   --- Конец внутренней трассировки стека исключений ---
   в System.Threading.Tasks.Task.ThrowIfExceptional (логическое значение includeTaskCanceledExceptions)
   в System.Threading.Tasks.Task`1.GetResultCore (логическое ожиданиеCompletionNotification)
   в System.Threading.Tasks.Task`1.get_Result()
   в Infrastructure.Web.WebClient.WebClient.PostJson(String requestUri, Object para)
   at UtilityBelt.Operations.APICaller.btnPost_Click (отправитель объекта, EventArgs e)
---> (Внутреннее исключение №0) System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка. ---> System.Net.WebException: базовое соединение было закрыто: при получении произошла непредвиденная ошибка. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный период времени, или установленное соединение не удалось, поскольку подключенный хост не ответил. ---> System.Net.Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный период времени, или установленное соединение не удалось, потому что подключенный хост не ответил
   в System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   в System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- Конец внутренней трассировки стека исключений ---
   в System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   в System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   в System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- Конец внутренней трассировки стека исключений ---
   в System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
   в System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- Конец внутренней трассировки стека исключений ---<---

Исключение возникает при каждом вызове из Сервер А, но почему-то не возникает никаких исключений при совершении того же звонка из моей локальной сети или другого сервера.

Я вижу, что звонок от Сервер А достигает IIS на клиентском сервере, но похоже, что он даже не достигает контроллера в веб-API. Вот запись журнала в файле журнала 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

Посмотрев на него некоторое время, я включил отслеживание неудачных запросов, но не смог получить много информации из созданного файла, который содержал много подробной информации и следующие два предупреждения:

Отслеживание предупреждений

Я видел, что возможным объяснением может быть необработанное исключение, но добавление деталей обработчика необработанного исключения здесь никакой дополнительной информации не представил.

Любые предложения относительно того, что я должен изучить дальше, чтобы сузить причину проблемы?

Lex Li avatar
флаг vn
Такие исключения сокетов довольно распространены, поскольку стек TCP/IP допускает некоторую нестабильность. Вы должны спроектировать свой код, чтобы ожидать/обрабатывать это правильно и повторять попытку при необходимости.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.