我目前正在IIS 7.5上托管WCF服务。
问题是我需要在会话期间保存数据(使用静态成员),但AppPool回收会继续删除所有缓存数据。
根据我的理解,我唯一的解决方案是自我托管服务。 我不知道如何做到这一点以及利弊是什么。 这真的是我唯一的选择吗?
更新
看起来有一个不同的问题。 我将主机从IIS更改为在控制台应用程序上自托管,我发现了一个导致应用程序崩溃的错误。我猜这是数据丢失的原因,而不是应用程序池的回收......
答案 0 :(得分:2)
这似乎不是从IIS迁移到Windows服务的好理由。为什么不通过
禁用应用程序池回收空闲超时(分钟)= 0
“常规时间间隔(分钟)”= 0
所以永远不会回收
另外
Disable Recycling for configuration Changes = true
这些设置存在于AppPool的高级设置中
更新:如何
“禁用重叠回收”= true
AppPool回收设置
答案 1 :(得分:0)
如果这是问题,我认为您将缓存存储在内存中。我们可以将缓存存储在磁盘,数据库或任何您自定义的位置。所以不需要将您的应用程序从IIS移动到自托管。