【发布时间】:2011-06-23 02:07:21
【问题描述】:
我们有一个 WCF 服务,我们希望保持“长期存在”。但无论出于何种原因,只要我们空闲约 20 分钟,IIS 似乎就会卸载我们的 AppDomain。
我可以为AppDomain.CurrentDomain.DomainUnload 事件附加一个方法,有什么方法可以取消代码中的卸载?或者我可以使用 IIS 中的配置?
【问题讨论】:
我们有一个 WCF 服务,我们希望保持“长期存在”。但无论出于何种原因,只要我们空闲约 20 分钟,IIS 似乎就会卸载我们的 AppDomain。
我可以为AppDomain.CurrentDomain.DomainUnload 事件附加一个方法,有什么方法可以取消代码中的卸载?或者我可以使用 IIS 中的配置?
【问题讨论】:
当然,我刚刚发现了另一个问题,大概是什么答案:
How to keep ASP.NET assemblies in AppDomain alive?
我查看了所有用于回收 AppPools 的设置,但错过了至关重要的“空闲超时”属性。
它的默认值当然是 20 分钟,并且可以将其更改为零以停止此行为。
【讨论】: