加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

为什么我得到“线程被中止”在asp.net?

发布时间:2020-12-15 19:14:28 所属栏目:asp.Net 来源:网络整理
导读:我不知道为什么会发生这种情况,我从来没有明确中止线程,所以这是一个惊喜。但我记录异常,我看到: System.Threading.ThreadAbortException – Thread was being aborted. 它似乎发生在调用System.Threading.WaitHandle.WaitOne。我不知道这个例外是多远。
我不知道为什么会发生这种情况,我从来没有明确中止线程,所以这是一个惊喜。但我记录异常,我看到:

System.Threading.ThreadAbortException – Thread was being aborted.

它似乎发生在调用System.Threading.WaitHandle.WaitOne。我不知道这个例外是多远。我不认为我的线程曾经终止,因为我捕获日志和吞咽错误。

有谁知道我为什么得到这些错误?也许是当我强制终止我的服务器或要求它重新启动?如果不是,那么什么可能是导致他们?

解决方法

如果在Application_Start中生成线程,它们仍然会在应用程序池的AppDomain中执行。如果应用程序空闲了一段时间(意味着没有请求进入)或某些其他条件满足,ASP.NET将回收整个应用程序域。当这种情况发生时,从AppDomain启动的任何线程,包括来自Application_Start的线程,都将被中止。

更多关于应用程序池和回收在这个问题:What exactly is Appdomain recycling

如果你试图在IIS / ASP.NET中运行一个长时间运行的进程,简短的答案通常是“不要”。这就是Windows服务。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读