Один из важных кусочков нового решения, над которым я работаю Кролик . Для тех, кто никогда не слышал о RABBITMQ, это один из наиболее широко используемых открытых источников брокера. Поскольку наше решение размещено на месте, Rabbitmq был одним из самых естественных подходящих для нас. Наша наша архитектура решения построена на .NET Core 2.1 и недавно мигрировал на .NET Core 2.2. Чтобы запустить rabbitmq у нас было 3 варианта:
- Запустить rabbitmq как традиционный .NET Framework «Windows Service»
- Запустить rabbitmq как .NET Core «Windows Service»
- Host Rabbitmq на IIS как .NET Основное приложение
Создание .NET. Рамочная служба Windows Windows была известным зверям, поскольку мы сделали его сто раз. Однако, поскольку все наше решение было основано на .NET Ядро, это был шаг назад. В результате мы начали изучать вариант 2, который проходит .NET Core на основе Windows Service. Наше решение было в значительной степени вдохновлено (читать «скопировано») от поста «Стива Гордана» на « Работает .NET. Core Generic Host App в качестве службы Windows «
Исходя из его поста, мы настроили решение для запуска в качестве консоли приложение во время разработки, а затем в качестве службы Windows во время развертывания. Однако мы не нашли развертывания службы Windows на .NET Ядро так просто, как мы изначально думали. Нам пришлось изменить файл проекта, чтобы добавить Runtimentifier
или Избавиться Отказ Избавить это ОС и архитектура. Это другая строка, основанная на ОС, версии, архитектуре. Мы не хотели бы конкретные зависимости ОС в нашем решении. Мы не имели определенные зависимости в нашем решении. В дополнение к этому, Windows-Service также придумает свой собственный набор сложностей. Трудно отлаживать и монитор по сравнению с хостингом-сервисом.
Вот где мы смотрели в третий вариант: проводят наш рабочий работник на IIS. Хостинг фонового работника на IIS означал, что мы смогли развернуть наш фоновый работник же, как мы развернули веб-приложение. Вместо использования «общего хоста» мы смогли использовать по умолчанию «Web Host». Был менее пользовательский код. Было легче отладить и монитор. В дополнение к этому, мы также смогли использовать .СЕТЬ Core Health Crelects Отказ
Чтобы запустить фоновый работник на IIS, нам пришлось настроить настройки IIS, чтобы сохранить его всегда и работать. Вот сценарий PowerShell, который мы проводим на осьминоге, чтобы обновить настройки IIS.
Надеюсь, вы найдете это полезным.
Пост .СЕТЬ Core — бегущий фон работника на IIS появился первым на Привет, я Анкит Отказ
Оригинал: «https://dev.to/ankitvijay/net-core—running-background-worker-on-iis-54ho»