我有一个Hangfire(使用SqlServer进行持久化)作业,该作业从数据库查询一些数据。然后使用这些数据生成带有NPOI的Excel,然后通过电子邮件将其发送给用户。
数据不是很大,只有1,000行。因此,作业将在几秒钟内执行。但是,生成Excel或发送邮件时,出现“线程被中止”异常。
我猜想像Timeout这样的东西会杀死线程。 有人有同样的问题吗?有解决方案吗?
答案 0 :(得分:0)
好的。实际上,我在这里犯了一个愚蠢的错误。
在生成Excel之前,我有一个模板。模板将首先复制到HttpRuntime.BinDirectory
(我正在努力避免资源冲突)。
HttpRuntime.BinDirectory
是导致线程中止的根本原因。
当网站bin文件夹中有任何更改时,IIS将续订AppDomain(或ApplicationPool?)。这将中止当前正在运行的线程。