В приложении ASP.Net пользователь нажимает кнопку на веб-странице, а затем создает объект на сервере через обработчик события и вызывает метод объекта. Метод отправляется во внешнюю систему, чтобы делать что-то, и это может занять некоторое время. Итак, что бы я хотел сделать, это запустить этот метод в другом потоке, чтобы я мог вернуть управление пользователю с "Ваш запрос был отправлен". Я достаточно рад сделать это как огонь и забыть, хотя было бы еще лучше, если бы пользователь мог продолжить опрос объекта для статуса.
То, что я не знаю, - это если IIS позволяет моему потоку продолжать работать, даже если пользовательский сеанс истекает. Представьте, что пользователь запускает событие, и мы создаем объект на сервере и запускаем метод в новом потоке. Пользователь доволен сообщением "Ваш запрос отправлен" и закрывает его браузер. В конце концов, этот сеанс пользователей будет отключен в IIS, но поток все равно может работать, выполняя работу. Будет ли IIS разрешать поток продолжать работать или он его убьет и удалит объект после истечения срока действия пользователя?
EDIT. Из ответов и комментариев я понимаю, что лучший способ сделать это - переместить длительную обработку за пределы IIS. Помимо всего прочего, это касается проблемы утилизации апдомен. На практике мне нужно получить версию 1 с земли в ограниченное время и работать в существующей структуре, поэтому хотелось бы избежать уровня сервиса, отсюда желание просто отключить поток внутри IIS. На практике "длительное время" здесь будет всего лишь несколько минут, а concurrency на сайте будет низким, так что все должно быть в порядке. Но следующей версии определенно потребуется разделить на отдельный уровень обслуживания.