使用静态时WCF丢失值

时间:2010-10-17 15:39:13

标签: c# .net wcf

我有一个具有静态类的WCF。我用它来存储登录信息。令我惊讶的是,我发现在不同的时间,wcf static正在失去价值。什么可能导致这个?在WCF服务中保留信息的最佳方法是什么?在记忆中是最好的,因为它更快......

2 个答案:

答案 0 :(得分:1)

如果重新启动托管应用程序域,则存储在内存中的所有静态值都将丢失。例如,在IIS中,Web服务器可以卸载应用程序。

唯一的解决方案是将值保存到持久存储中,而不是使用静态字段。

答案 1 :(得分:0)

有几种可能性:

  • 代码中的某些内容正在删除值
  • 正在重新编写应用程序池,然后释放内存中的所有内容

您可以将应用程序池的选项设置为仅在特定时间回收。

如果您需要保留登录信息,则应将其存储在磁盘上的文件中,或者最好存储到数据库中。