如何在工作进程asp.net的所有实例之间共享变量

时间:2013-10-29 05:09:58

标签: c# asp.net static singleton-methods

我必须将预先构建的asp网站从单个工作进程环境移动到云服务器上的多个工作进程环境。 我有一个带静态arraylist变量的类,它用于包含所有会话信息的最后2分钟以便跟踪。管理员用于访问此arraylist以查看实时报告。但是,在将其迁移到云基础架构时,这已经打破了结果不再正确。这取决于负载均衡器后面的服务器为页面提供服务,因此每个应用程序池有多个静态变量实例。我试图转移到mysql,但我们需要定期清除数据,它也有性能问题。在这里,arraylist被大量处理以生成有用的数据,因此我需要一些内存。

请注意,之前使用没有锁定的静态变量也是缺点,但这只会导致1或2条记录之间存在差异,但速度非常快。

1 个答案:

答案 0 :(得分:0)

您可以考虑通过基于SQL Server的会话存储来支持您的会话。 或者,您可以使用应用程序缓存服务器来备份它。这将允许您跨多个Web服务器共享它。