Не вижу причину ошибки в NET веб-приложении Core 2.2, работающем в Ubuntu за прокси NGINX - PullRequest
0 голосов
/ 06 марта 2020

У меня есть сервер Ubuntu, работающий NGINX в качестве обратного прокси-сервера для ASP. NET Core 2.2 веб-API, и у меня возникают проблемы с диагностикой ошибки сервера 500, которую я продолжаю получать по запросам к API.

Я просмотрел все журналы, которые я вижу в / var / logs, журналы приложений, которые настроены на трассировку, и журналы ошибок nginx, которые настроены на отладку. Однако нет никакой подсказки о том, где находится ошибка.

Все запросы к API не выполняются с тем же ответом 500, кроме одного, который является конечной точкой токена аутентификации IdentityServer, которая работает. Он работает в том же API.

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

На сервере есть SQL База данных сервера сервер, но он не доступен для конкретных запросов, которые я пытаюсь, поэтому я исключаю это.

Мой вопрос: где еще я могу посмотреть, что происходит? Это должно быть что-то, связанное с приложением, так как это единственное, что изменилось, и другой сайт, работающий за NGINX на той же машине, работает нормально, поэтому я не виню конфигурацию NGINX.

Когда я возвращаю весь сервер в резервную копию до того, как развертывание было выполнено, все работает нормально. Развертывание кода приложения что-то нарушает, но я просто не могу понять, что и почему.

Ответ об ошибке 500 очень прост без обычных заголовков. NGINX настроен на добавление гораздо большего количества заголовков ответов, чем это.

HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Thu, 05 Mar 2020 21:12:54 GMT
Content-Length: 0
Connection: keep-alive
Keep-Alive: timeout=30

1 Ответ

0 голосов
/ 08 марта 2020

Проблема была с некоторым кодом внутри конструктора, который вызывался во время запуска приложения во время создания внедрения зависимости.

Не было проблем при локальной разработке с помощью do tnet run, но при публикации файлы в режиме отладки или выпуска, затем выдается исключение.

Обнаружена ошибка после добавления этой строки в метод Startup.Configure:

 app.UseDeveloperExceptionPage();

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

...