Ответ 1
Необработанные исключения приводят к сбою рабочего процесса IIS. Это по дизайну. http://support.microsoft.com/kb/911816
Следовательно, вы должны правильно обрабатывать исключения.
Я просто перевел часть кода своего сайта с помощью QueueUserWorkItem
to Task.Factory.StartNew
У меня есть плохой код, который бросил исключение, и в конечном итоге он отключил w3wp. Запуск IIS 7.5 на Windows Server 2008 R2, x64
Task.Factory.StartNew(() =>
{
MethodThatThrowsException();
}
Приложение: w3wp.exe Версия Framework: v4.0.30319 Описание: Процесс был прерван из-за необработанного исключения. Информация об исключении: System.AggregateException стек: в System.Threading.Tasks.TaskExceptionHolder.Finalize()
Исключение: System.AggregateException
Сообщение: исключение (-и) задачи не наблюдалось ни в ожидании задачи, ни при доступе к ее свойству Exception. В результате незаметное исключение было восстановлено потоком финализатора.
StackTrace: в System.Threading.Tasks.TaskExceptionHolder.Finalize()
InnerException: System.Data.SqlClient.SqlException
Я бы предположил, что исключение создало бы журнал событий, а НЕ убили w3wp. Это неправильное предположение?
Необработанные исключения приводят к сбою рабочего процесса IIS. Это по дизайну. http://support.microsoft.com/kb/911816
Следовательно, вы должны правильно обрабатывать исключения.