替代WCF服务中的字典

时间:2011-07-10 17:22:23

标签: c# .net wcf dictionary

我有一个WCF网络服务,当用户订阅时(它是一个WP7推送通知服务),它会在字典中添加一个Guid和Uri。 我的问题是,当应用程序停止或重新启动时,字典显然已清空。

我希望提供简单易用的替代方法来存储数据,同时最大限度地减少内存需求。此应用程序在IIS7上运行.net4。

我只需要添加到'字典'并检查它是否包含值。真的很简单。

2 个答案:

答案 0 :(得分:2)

好吧,为了在服务器重启时保持数据存在,你显然需要坚持下去。

这里有两个显而易见的可能性:

  • 使用数据库
  • 将数据存储在文件中

我建议数据库是这里最好的方法 - 让它与多个WCF服务器等一起使用比读取和更新共享文件要简单得多。

现在可能想要以字典的形式在服务器中保留结果缓存 - 这取决于访问的外观,数据是否更新(导致缓存失效的棘手问题)以及延迟要求的重要性。 (如果这是来自手机的请求,那么我怀疑将请求发送到服务器的延迟会使使用索引查找的简单数据库访问所增加的延迟相形见绌。)

答案 1 :(得分:1)

当您在代码中的 Dictionary 中存储某些内容时,它只会持续到代码执行的持续时间。换句话说,您的词典的生命周期仅限于您的代码执行。要拥有更长的存储空间,您必须使用其他机制,例如会话应用程序。但是,如果您希望存储的生命周期通过应用程序回收,那么您应该考虑将数据存储在数据库中。