При добавлении app_offline.htm приложение отправляет Application_End
и после возврата этой функции остальные потоки программы уничтожаются.Максимальное время ожидания возврата Application_End
задается в настройках пула.
Если вы остановите полный пул, то все сайты в этом пуле будут следовать той же процедуре.Если вы открываете только app_offline.htm, то затрагивает только этот сайт.
Чтобы избежать прерывания ваших потоков этим отключением, установите состояние ожидания на Application_End
void Application_End(object sender, EventArgs e)
{
// This is a custom function that you must make and
// check your threads in the program
MyTheadClass.WaitForAllMyThreadsToExist();
// after this function exit the rest of the threads are killed.
}
Еще одинnote.
Все время, пока вы ожидаете на Application_End, чтобы ваши потоки выходили из состояния ожидания (возможно, мьютекса), сайт больше не принимает веб-соединения и кажется, что он не отвечает.Поэтому вы должны как можно быстрее завершить свои потоки, когда получите это сообщение.