【问题标题】:Wcf sharing variables between callsWcf 在调用之间共享变量
【发布时间】:2014-07-20 15:39:41
【问题描述】:

我有一个 wcf 网络服务,我想在调用之间共享信息(不同的客户端调用)。

例如在客户端调用之间共享字典。字典可以通过调用(添加/删除项目等)进行更改,但我不能为每次调用删除或更新它(它应该像一个静态数据库)。

有没有办法解决这个问题?

已经尝试了一些建议,但似乎没有任何效果。

【问题讨论】:

    标签: c# wcf iis-6


    【解决方案1】:

    您基本上需要在服务类之外定义singleton - 您需要处理多个调用同时访问/修改信息的可能性很大,因此可能需要使用ReaderWriteLockReaderWriterLockSlim

    假设您使用的是 .net 4.0,一个更好的方法是使用包含内置线程安全的 MemoryCache。如果您是 .net 4.0 之前的版本,那么 System.Web 命名空间link 中有一个缓存对象 - 如果您想在编写 Windows 应用程序时使用它,那么必须添加对 system.web 的引用有点痛苦,所以.net 4.0 中的 MemoryCache 实现是一个受欢迎的补充。

    【讨论】:

    • Singletone 确实是我正在寻找的东西,memorycache 听起来更像是一种选择。我希望将字典变成调用之间的共享对象。还有其他选择吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2012-04-09
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多