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

c# – WCF中长时间运行的异步线程

发布时间:2020-12-15 18:20:51 所属栏目:百科 来源:网络整理
导读:有一个带有长期运行的异步线程的WCF服务. 这个长时间运行的操作可以运行超过1天. 我们在IIS 6上托管WCF服务. 线程运行正常,但在20分钟内我们收到错误消息: “线程已中止” 线程已经死了. 我们的WCF服务配置: [ServiceBehavior(InstanceContextMode = Insta
有一个带有长期运行的异步线程的WCF服务.
这个长时间运行的操作可以运行超过1天.
我们在IIS 6上托管WCF服务.

线程运行正常,但在20分钟内我们收到错误消息:
“线程已中止”

线程已经死了.

我们的WCF服务配置:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]

你能说出这个问题的根源吗?

谢谢你的答案.

解决方法

如果此Web服务没有活动(没有请求),IIS可能决定卸载应用程序域,这当然会导致杀死所有线程.默认值为20分钟,可以在IIS中的应用程序池的属性中进行配置.还有其他因素可能导致应用程序池被回收,例如系统在低内存上运行.因此,在IIS中托管此类内容可能并不可靠.您可以考虑在 Windows服务中托管长时间运行的任务.

(编辑:李大同)

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

    推荐文章
      热点阅读