【发布时间】:2011-11-23 02:30:37
【问题描述】:
我目前在 IIS 7.5 上托管 WCF 服务。
问题是我需要在会话期间保存数据(使用静态成员),但 AppPool 回收会不断删除所有缓存的数据。
据我了解,我唯一的解决方案是自行托管服务。 我不知道如何做到这一点以及利弊。 这真的是我唯一的选择吗?
更新
看起来有一个不同的问题。 我在控制台应用程序上将托管从 IIS 更改为自托管,我发现了一个导致应用程序崩溃的错误。我猜这是数据丢失的原因,而不是应用程序池回收的原因......
【问题讨论】:
-
取决于几件事...您的服务是否使用数据库?应用程序回收和会话管理如何工作(回收应用程序池也会丢失所有会话,而不仅仅是缓存数据)?
-
我确实使用数据库来检索和保存数据。是的,当应用程序池回收时,我失去了一切......
-
为什么不使用数据库作为缓存?您的会话管理是如何实现的?
-
数据库只存储部分数据。不是全部——而且有很多数据。我无法真正将所有内容都存储在数据库中。
-
我创建了一个会话类。所有会话类都存储在一个单例类中。
标签: wcf