前端之家收集整理的这篇文章主要介绍了
c# – WCF中长时间运行的异步线程,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个带有长期运行的异步线程的WCF服务.
这个长时间运行的操作可以运行超过1天.
我们在IIS 6上托管WCF服务.
线程运行正常,但在20分钟内我们收到错误消息:
“线程已中止”
线程已经死了.
我们的WCF服务配置:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
你能说出这个问题的根源吗?
谢谢你的答案.
如果此Web服务没有活动(没有请求),IIS可能决定卸载应用程序域,这当然会导致杀死所有线程.默认值为20分钟,可以在IIS中的应用程序池的
属性中进行配置.还有其他因素可能导致应用程序池被回收,例如系统在低内存上运行.因此,在IIS中托管此类
内容可能并不可靠.您可以考虑在
Windows服务中托管长时间运行的任务.
原文链接:https://www.f2er.com/csharp/98252.html