У меня есть быстрый вопрос относительно дополнительных потоков переднего плана, которые выполняются в веб-приложении ASP.net. Я позволяю некоторым вещам запускаться в дополнительном потоке класса Thread, таком как Cleanup-Actions, после определенного события, но пользователя не интересуют эти операции, поэтому потоки - эти операции должны просто выполняться (скорее в фоновом режиме) и им нечего делать с обслуживанием запросов.

  • Что происходит, когда приложение вылетает из-за неперехваченного исключения - будет ли дополнительный поток выполняться до завершения или IIS немедленно его отменяет?

  • Что происходит при перезапуске пула приложений?

Я знаю, что было бы лучше использовать отдельные программы для таких заданий .. Например, служба Windows, но я «унаследовал» этот код от бывших сотрудников ..

Erik Mandke

Ответов: 1

Ответы (1)

Любая работа, выполняемая или поставленная в очередь внутри ASP.NET, может быть потеряна в любой момент. Детально отвечать на ваши вопросы не обязательно, потому что они спорные. Есть много причин, по которым весь процесс может просто уйти.

Службы Windows также могут исчезнуть в любой момент (сбой, синий экран, ...).

Если вам нужно надежное исполнение, нужно продолжать работу. Подходит какая-то очередь сообщений (может быть таблица базы данных).

2022 WebDevInsider