【发布时间】:2011-12-28 14:57:16
【问题描述】:
我有一个在 IIS 上运行的 WCF 服务。
每次用户登录(使用用户名和密码)时,我都会创建一个 SessionClass,它每隔几分钟在线程中执行一次操作并处理用户请求。
我将字典中创建的每个新 SessionClass 保存在单例 ServiceClass 中。
如果用户在很长一段时间内(比如 10 小时)没有请求任何内容,则会话应该终止。我杀死线程并从 ServiceClass 单例中的 Dictionary 中删除 SessionClass。
我的问题是,每次我从 Dictionary 中删除一个 SessionClass 时,它都会再次使 ServiceClass 的实例为空,而下一次调用它时,它又会被再次创建,所以我失去了以前在字典...
我尝试在 WCF 服务中直接引用 ServiceClass.GetInstance()(我认为垃圾收集器正在杀死 ServiceClass)但它无济于事......
为什么会这样?有什么想法吗?
【问题讨论】:
-
阅读更多相关信息here。