В настоящее время я поддерживаю приложение, которое работает как служба Windows, считывает сообщения с сервера очереди сообщений, обрабатывает их и возвращает результат на сервер очереди сообщений. Но он также содержит компонент мониторинга работоспособности, доступный через веб-API. Он реализован как консольное приложение, которое использует Katana для самостоятельной установки подсистемы мониторинга работоспособности.Является ли ASP.NET Core на платформе .NET Core моделью консоли или хостинговой моделью IIS?
Теперь я пытаюсь выяснить, можем ли мы перенести это на .NET Core и ASP.NET Core после их RTM. Я знаю, что часть службы Windows не может быть перенесена, но я также могу запустить консольное приложение в качестве отдельного контейнера Docker, чтобы в основном добиться того же, с точки зрения основных функций. Но как будет работать мониторинг состояния здоровья? Из того, что я вижу, проект Katana был обновлен до ASP.NET 5 (который, я думаю, является ASP.NET Core 1 перед большим переименованием), но он не работает в .NET Core CLR. Катане потребуется полная CLR. Значит, Катана нет.
Означает ли это, что способ создания нашего приложения невозможно с помощью .NET Core? Или хостинг приложения через Kestrel не исключает возможности запуска кода до первого запроса? С IIS приложение не будет работать до первого запроса (если вы не используете автозапуск, но это скорее оптимизация скорости, чем приложение ведет себя как «allways-running-app»), и, как правило, приложение является запросом- и не постоянно работает. Фоновые потоки в размещенном IIS приложении - действительно плохая идея. Это то же самое с Kestrel? Или DNX запустит ваше приложение и продолжит его работу до тех пор, пока он не выключится, как консольное приложение, чтобы мы могли запускать все фоновые потоки, которые мы хотим?
https://github.com/aspnet/Hosting/tree/dev/src/Microsoft.AspNetCore.Hosting.WindowsServices – davidfowl
Это очень интересная ссылка. Благодаря! –