C# Task.Factory.StartNew有未捕获的异常会杀死w3wp吗?

C# Task.Factory.StartNew有未捕获的异常会杀死w3wp吗?,c#,iis,c#-4.0,concurrency,w3wp,C#,Iis,C# 4.0,Concurrency,W3wp,我刚刚将我网站的一些代码从使用QueueUserWorkItem转换为Task.Factory.StartNew 我有一些坏代码抛出了一个异常,它最终关闭了w3wp。在Windows Server 2008 R2,x64上运行IIS 7.5 Task.Factory.StartNew(() => { MethodThatThrowsException();

我刚刚将我网站的一些代码从使用
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

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

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

InnerException:System.Data.SqlClient.SqlException


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

未处理的异常会使IIS工作进程崩溃。这是故意的


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

这是一个愚蠢的问题,因为您的问题基本上回答了您的问题。当然,你的假设是错误的,否则你不会问这个问题。尽管如此,我还是放弃了你的问题,放弃了投票,因为这是我自己没有意识到的事情。我的猜测是,当异常正常抛出时,会有一个全局错误处理程序捕获错误。当您在任务工厂中使用新线程时,您跳出了正常的错误处理。。。这是一件很好的事情。。。或者你发现了一只虫子!谢谢,这就是我要找的