12

我刚刚将我网站的一些代码从使用QueueUserWorkItem转换为Task.Factory.StartNew

我有一些抛出异常的错误代码,它最终关闭了 w3wp。在 Windows Server 2008 R2、x64 上运行 IIS 7.5

                Task.Factory.StartNew(() =>
                {
                    MethodThatThrowsException();
                }

应用程序:w3wp.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:System.AggregateException 堆栈:在 System.Threading.Tasks.TaskExceptionHolder.Finalize()

异常:System.AggregateException

消息:通过等待任务或访问其异常属性未观察到任务的异常。结果,未观察到的异常被终结器线程重新抛出。

StackTrace:在 System.Threading.Tasks.TaskExceptionHolder.Finalize()

内部异常:System.Data.SqlClient.SqlException

我会假设一个异常会生成一个事件日志并且不会杀死 w3wp。这是一个错误的假设吗?

4

1 回答 1

9

未处理的异常使 IIS 工作进程崩溃。这是设计使然。http://support.microsoft.com/kb/911816

因此,您应该正确处理异常。

于 2011-02-20T06:31:20.843 回答