代码之家  ›  专栏  ›  技术社区  ›  eugeneK

ASP.NET是否可以将应用程序状态另存为不同服务器上的会话状态?

  •  1
  • eugeneK  · 技术社区  · 15 年前

    也许这个问题是错误的,但这就是我想要实现的,也许还有其他的方法可以做到。

    我让ASP.NET应用程序运行.NET 3.5,有一个客户机列表和一些其他基于列表的对象,这些对象在应用程序的所有用户之间共享。也就是说,当客户机登录其用户ID时,应用程序状态下的某些列表中会保存一些其他属性。问题是这个应用程序很重,它的应用程序池需要每天重新启动一次左右,所以保存在这些列表对象中的所有信息都会丢失。在外部服务器上以进程外模式保存的客户端个人数据将被保存。

    有没有办法解决这个问题?共享会话?像那样。

    请不要使用MSSQL解决方案…

    干杯!!!!!

    2 回复  |  直到 15 年前
        1
  •  1
  •   Community datashaman    7 年前

    你看过缓存数据列表吗?

    这个 SO 这篇文章有一些好的细节。

        2
  •  1
  •   AnthonyWJones    15 年前

    您应该只将应用程序状态用作其他地方持久化数据的缓存。然后,您将使用应用程序启动或一些延迟加载包装类来将此类持久化数据检索到应用程序对象中。

    如果您存储的是不持久化的易失性数据,而不是应用程序对象中的其他地方,那么您就有麻烦了。希望您已经抽象了对某个包装器对象后面的应用程序对象的访问,这样您的所有代码都在访问包装器,而不是应用程序对象。现在,您需要确保修改保存在其他地方,以便在重新启动时恢复。

    坦率地说,应用程序状态对象实际上是移植ASP经典站点的辅助工具。由于您实际上应该将应用程序状态视为缓存,因此它与ASP.NET缓存对象之间的功能存在重叠。