【问题标题】:"Thread was being aborted" exception raised in excuting Hangfire job执行 Hangfire 作业时引发“线程被中止”异常
【发布时间】:2019-01-27 03:58:24
【问题描述】:
我有一个 Hangfire(使用 SqlServer 进行持久性)作业,它从数据库中查询一些数据。然后用这些数据生成一个带有 NPOI 的 Excel,并通过电子邮件发送给用户。
数据不是很大,只有 1000 行。所以作业在几秒钟内执行。但是,在生成 Excel 或发送邮件时出现“线程被中止”异常。
我猜有类似超时的东西,它会杀死线程。
有没有人有同样的问题?有什么解决办法吗?
【问题讨论】:
标签:
hangfire
threadabortexception
【解决方案1】:
好的。其实我在这里犯了一个愚蠢的错误。
在生成 Excel 之前,我有一个模板。模板会先复制到HttpRuntime.BinDirectory(我在尽量避免资源冲突)。
这个HttpRuntime.BinDirectory 是导致线程中止的根本原因。
当网站 bin 文件夹有任何变化时,IIS 将更新 AppDomain(或 ApplicationPool?)。这将中止当前正在运行的线程。