Веб-приложение, развернутое на пустельге, переходит в режим ожидания

У меня есть ASP .Net core webapi, развернутый на IIS 7.5 (Windows 2008 R2). У меня есть контроллеры, а также классы слушателей (которые ждут прибытия сообщения в сообщении RabbitMQ), которые выполняют те же функции.

Проблема в том, что всякий раз, когда webapi развернут на IIS или имеет какое-то время простоя, сообщения RabbitMQ не принимаются. Приложение «просыпается» и принимает сообщение только в том случае, если я вызываю API к элементу управления.

Твики, которые я пробовал: в пуле приложений,

  1. установите для параметра «Тайм-аут простоя» значение 0.
  2. установите для параметра Disable Overlapped Recycled значение true.
  3. установите «Отключить повторное использование при изменении конфигурации».

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


person Amit    schedule 26.07.2017    source источник
comment
Не могли бы вы рассказать о том, как и когда вы слушаете сообщения RabbitMQ. Также вы видите, что процесс w3wp.exe всегда выполняется на сервере IIS?   -  person Rohith    schedule 26.07.2017
comment
Вы нашли какое-либо альтернативное решение без отправки ненужных сообщений   -  person Vinit Patel    schedule 04.10.2018


Ответы (1)


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

Для отправки запросов я использую функцию Доступность в Application Insights - она ​​позволяет создавать тесты, которые отправляют GET запросов в ваше приложение каждые 5 минут. Подробнее об этом можно узнать здесь.

person Tyrrrz    schedule 17.11.2017