. NET Core 3 - IIS - инициализация приложения не работает - PullRequest
1 голос
/ 25 января 2020

Я следовал документации IHostedService для запуска фоновой задачи с использованием. NET Core MVC framework.

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

Я сделал следующее:

  • Установлена ​​функция инициализации приложения на Windows сервере
  • Set " Предварительная загрузка "true на веб-сайте
  • На AppPool установите" AlwaysRunning "
  • На AppPool установите" Idle Timeout "на 0
  • На AppPool, гарантировано он работал под «Нет управляемого кода»
  • В конфигурации ApplicationInitialization установите следующие флаги:
  • doAppInitAfterRestart = True
  • skipManagedModules = False
  • Добавлено ключ initializationPage, = "/ start" (пустой MVC вызов только для запуска приложения)

Как ни странно, эти шаги работают на fre sh Windows Установка сервера, но не на сервер, который я хочу использовать.

На пробл emati c server, я вижу процесс w3wp try , чтобы запустить процесс do tnet (через Procmon), но на самом деле он не выполняет никакого кода ядра do tnet, пока я не отправлю реальный HTTP-запрос из браузера.

Я прочитал много потоков GitHub, в которых говорится, что это должно работать независимо от конкретной версии IIS - что еще может происходить?

1 Ответ

0 голосов
/ 25 января 2020

Я пошел на крайние меры, включая отмену регистрации глобальных модулей, ручное изменение DLL, изменение applicationHost.config и удаление всех видов внутренних конфигураций IIS. Никто не заставит приложение запускаться автоматически.

Затем я выбрал ядерный подход: Переустановите IIS (перезагружается между деинсталляцией / переустановкой)

Это, конечно, означает потерю некоторых информация о ваших существующих размещенных приложениях (например, информация о привязке - если вы видите, что все ваши сайты «остановлены» после переустановки, это потому, что привязка больше не привязана), и после переустановки мне также пришлось:

  • Переустановка / восстановление Web Deploy 3.5

  • Переустановка / восстановление ASP. NET Базовые пакеты хостинга (для каждой уязвимой версии)

  • Переустановка / восстановление. NET Core SDK

Затем все заработало как положено. Большинство моих сайтов и настроек IIS остались без изменений. Мне не пришлось переустанавливать WAS (Activation Service), как это обычно делается в других публикациях.


Обновление: у меня был сценарий ios, где AppInit перестает работать на некоторых серверах даже после временного Решив это, используя шаги выше - я открыл ошибку для этого здесь: https://github.com/dotnet/aspnetcore/issues/19509

...