ASP.NET有没有办法将应用程序状态保存为不同服务器上的会话状态?

时间:2009-11-05 11:27:05

标签: asp.net session

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

我有运行.net 3.5的ASP.NET应用程序,有一个客户端列表和其他一些基于列表的对象,这些对象在所有应用程序用户之间共享。即。当客户端登录他的userID时,很少有其他属性保存在应用程序状态的某个List中。问题是这个应用程序很重,它的应用程序池需要每天重启一次,因此这些List对象中保存的所有信息都将丢失。保存在外部服务器上以Out-of-Proc模式保存的客户端个人数据。

有什么方法可以解决它吗?共享会话?这样的事情。

请不要使用MSSQL解决方案......

欢呼,专业!!!!

2 个答案:

答案 0 :(得分:1)

您是否考虑过缓存数据列表?

这篇SO文章有一些很好的作品。

答案 1 :(得分:1)

您应该只将Application State用作其他地方持久化数据的缓存。然后,您将使用Application_Start或一些Lazy加载包装器类将这些持久化数据检索到应用程序对象中。

如果要存储的应用程序对象中没有持久存储的volatile数据,那么您就遇到了麻烦。希望您可以抽象访问某个包装器对象后面的应用程序对象,这样您的所有代码都可以访问包装器而不是应用程序对象。现在,您需要确保将修改保存在其他位置,以便在重新启动时恢复它们。

坦率地说,Application状态对象实际上有助于移植ASP-Classic站点。由于您确实应该将应用程序状态视为缓存,因此它与ASP.NET缓存对象之间存在功能重叠。