Приложение ASP.NET Core медленно отвечает на запросы после простоя - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть приложение ASP.NET Core MVC, работающее на компьютере с Windows Server 2016.Проблема, с которой я сталкиваюсь, заключается в том, что после простоя около 1 минуты приложение медленно отвечает на запросы.Если я использую приложение постоянно, все в порядке и быстро, но если я не отправляю запрос в течение минуты, следующий запрос займет> 10 секунд, чтобы получить ответ.

Я начал возиться с IISНастройки пула приложений, чтобы сохранить его в живых, но ничего не изменилось.Наконец, я полностью отключил IIS и запустил сборку приложения, используя Http.Sys, поведение не изменилось.Я отслеживал журналы приложений в окне cmd, когда он работал в Http.Sys, и после минуты простоя не было никакого вывода, когда следующий запрос поступал в течение примерно 10 секунд, поэтому приложение даже не начало ничего делатьдо тех пор.Через 10 секунд приложение ответило на запрос в обычное время.

Пример журналов приложения:

info: Microsoft.AspNetCore.Routing.EndpointMiddleware [0] Выполнение конечной точки'XXXXXX (XXXX)' информация: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1] Маршрут соответствует {action = "xxx", controller = "xxx"}.Выполнение действия XXXXXX (XXXX) info: Microsoft.AspNetCore.Hosting.Internal.WebHost [2] Запрос завершен в 6.2621ms 200 text / html;charset = utf-8

// Немедленное обновление страницы:

info: Microsoft.AspNetCore.Routing.EndpointMiddleware [0] Выполнение конечной точки 'XXXXXX (XXXX)' info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1] Маршрут соответствует {action = "xxx", controller = "xxx"}.Выполнение действия XXXXXX (XXXX) info: Microsoft.AspNetCore.Hosting.Internal.WebHost [2] Запрос завершен в 6.658ms 200 text / html;charset = utf-8

// Подождите 1 минуту, затем обновите страницу (нет активности в журнале в течение ~ 10 секунд, затем эта:)

информация: Microsoft.AspNetCore.Routing.EndpointMiddleware [0] Выполнение конечной точки 'XXXXXX (XXXX)' info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1] Маршрут соответствует {action = "xxx", controller = "xxx"}.Выполнение действия XXXXXX (XXXX) info: Microsoft.AspNetCore.Hosting.Internal.WebHost [2] Запрос завершен в 7.1181ms 200 text / html;charset = utf-8

Есть ли что-то, что я могу найти, возможно, спит эти процессы на сервере?Я не испытываю этого при локальном запуске в Visual Studio или при тестировании на другом тестовом сервере, только на этом демонстрационном сервере, который подключен к Интернету.Я также должен добавить, что я использую DbContext с SQL Server 2017, который внедряется как промежуточное ПО в каждый конвейер запросов, если, возможно, это может быть причиной.

...