我有一个 WCF 应用程序。我想让此应用程序始终处于活动状态。
如果有一段时间不活动,IIS 应用程序池会回收吗?
我怎样才能让它一直保持活力?
我应该使用计时器吗?
我的应用程序中确实有敏感数据,并且需要时间来填充它,这就是为什么我喜欢一直保持它处于活动状态。
答案1
默认情况下,在 IIS 中,应用程序池将在 20 分钟不活动后回收(空闲超时设置)。
您可以增加这个值(我相信将其设置为 0 相当于将其设置为永不超时)。
不过,我认为您最好看一下整体情况,而不是简单地调整 IIS 上的空闲超时。
服务使用频率如何?每小时几次,每分钟几次,每秒几次?
有多少个客户端同时连接?
填充数据需要多长时间?初始加载的长度是否足以证明增加空闲超时是合理的?等等。
如果您希望服务始终处于运行状态,可以考虑的另一个选项是将其托管为 Windows 服务。我已经对我的一个需要维护对象池的服务进行了此操作。
仅需考虑一些事情。
答案2
你可以创建一个自托管 WCF 服务彻底避免使用 IIS