Asp.Net Core предотвращает отключение консольного приложения - PullRequest
0 голосов
/ 12 сентября 2018

У нас есть веб-приложение, встроенное в ядро ​​asp.net 2.0, размещенное на IIS.Из этого приложения мы вызываем консольное приложение, которое выполняет запрос из базы данных в очереди.

Проблема в том, что приложение используется очень небольшим количеством людей, поэтому оно и процесс консоли выполняют длительное время, принимая обработку.Но это консольное приложение автоматически останавливается при закрытии веб-приложения.Из журнала событий мы получаем следующий вывод.(источник: модуль IIS AspNetCore)

Отправлено HTTP-сообщение о завершении работы для обработки «3548» и получение http-статуса «202».

Мы попытались установить StartMode веб-приложениявсегда работать в расширенной настройке пула приложений IIS.Но все равно, когда никто не использует приложение, через некоторое время оно останавливается.

Есть ли какое-нибудь решение?

1 Ответ

0 голосов
/ 12 сентября 2018

Вы, кажется, подходите к проблеме неправильно.Я бы не вызывал консольное приложение из веб-приложения.Вместо этого вам в идеале следует создать внутреннюю службу (например: Служба Windows с .NET Core ), которая периодически отслеживает вашу таблицу очередей и постепенно с ней справляется.

Это сделает ваш код модульным (см. Принципы SOLID ).Это также устранит проблему, возникающую при запуске консольного приложения в том же процессе, что и веб-приложение.

...