IIS ThreadAbort异常

时间:2012-09-25 01:31:17

标签: c# iis iis-7.5

在我的IIS 7.5上,我有一个带有startMode =" AlwaysRunning"的AppPool。另外,我将AppPool回收设置为3分钟进行测试。

当我运行一个长时间运行的任务(10分钟)时,它会抛出ThreadAbort。我认为" AlwaysRunning"会解决它。为什么会这样?我还需要改变其他什么吗?

1 个答案:

答案 0 :(得分:0)

应用程序池回收导致ThreadAbortException,因为它正在关闭池。无论什么,池进程都将终止并重新启动。池中的代码无法阻止这种情况(ThreadAbortException的特殊之处在于它可以被捕获但不被消耗)。

startMode="AlwaysRunning"只表示池始终可用。它没有声明哪个池进程是这样​​的(因此在池进程终止后它将自动启动另一个进程;或者如果IIS重新启动它将自动启动w3wp.exe)。

删除3分钟的回收周期时间长度。我不知道它如何有利于测试(因为每当修改ASP.NET应用程序时,IIS都会重启AppDomain)。