【发布时间】:2014-12-09 06:57:19
【问题描述】:
我们有一个 IIS 托管的 WCF 服务,它接收大量数据以进行处理。该服务启动几个工作线程,然后返回离开工作线程以完成工作(这可能需要一个小时)。如果 WCF 服务空闲足够长的时间,IIS 会回收应用程序池中止工作线程。这个问题已经通过让工作线程偶尔调用一个虚拟服务来让应用程序池保持活动状态而被规避。如果您认为整个设置是一个非常糟糕的主意,我完全同意(不是我的代码)。所以不用评论了。
问题是我们仍然偶尔会遇到 ThreadAbortException。 有什么方法可以获得关于什么/谁发起了线程中止的更多信息?我知道这不是我们的代码。
【问题讨论】:
-
也许正在查看异常中包含的调用堆栈?
-
呃,调用堆栈是相当随机的,如果中止是由外部进程启动的,我会预料到。
标签: c# multithreading wcf iis threadabortexception