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

前端之家收集整理的这篇文章主要介绍了c# – WCF中长时间运行的异步线程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个带有长期运行的异步线程的WCF服务.
这个长时间运行的操作可以运行超过1天.
我们在IIS 6上托管WCF服务.

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

线程已经死了.

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

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

谢谢你的答案.

解决方法

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

猜你在找的C#相关文章