如何在一个App Pool下配置不同应用程序之间共享的静态变量?

时间:2013-08-30 06:32:03

标签: c# asp.net

我的服务器上的一个应用程序池下有一组应用程序,其中一些共享应该独占的资源,因此,我想使用可以在这些应用程序之间共享的静态字典来保存共享dll库中令牌的所有者,让每个应用程序通过库申请令牌:

    public class SessionCache
{
    private static SessionCache _sessionData = new SessionCache();
    public static SessionCache Instance { get { return _sessionData; } }

    private Dictionary<string, SessionCacheItem> _dataDic = new Dictionary<string, SessionCacheItem>();
 ...}

不幸的是,静态SessionCache.Instance不是通过默认设置在不同的应用程序之间共享,有没有办法配置多个应用程序共享相同的静态变量?感谢

1 个答案:

答案 0 :(得分:1)

没有任何远程合理的想法。 : - )

如果这确实是您的要求,您可以使用SQL数据库服务器(许多选项可供选择),或使用其中一个新的“NoSQL”服务器,如Redis (REmote DIctionary Server),StackOverflow.com本身使用它缓存(只是谷歌),或类似MongoDB

或者,您可以执行类似创建WCF服务的操作,尽管这似乎可能会为您想要完成的工作做很多工作。 System.Type实例在AppDomain中的所有应用程序之间共享。但是,即使可能,您也不希望在多个应用程序之间共享静态变量。