简单的问题,但经过几个小时的搜索,我还没有找到一个简单的答案。是否有一种简单的方法可以在运行在多个服务器上的ASP.NET MVC 4网站中的所有会话之间共享全局变量?
在单个服务器上,我只是创建一个静态类,并在成员访问器周围包含适当的线程同步。但这显然不会在服务器之间同步。
您认为,因为保存每个会话状态非常容易,并且可以在服务器之间进行神奇的同步,因此您可以对应用程序状态执行相同的操作。但我读过的东西都说应用程序状态是服务器本地的。
答案 0 :(得分:1)
如果您的意思是存储会话状态,则有3个选项:
后者2提供了您正在寻找的“共享全局”。请注意,会话状态服务是单点故障。如果您的SQL配置是多余的,SQL Server会话状态存储可能是多余的。
另见:
如果您想转移到ASP.Net本身不支持的其他解决方案,您可以使用:
注意我没有使用Memcached或Redis,但我听说过很棒的事情。
答案 1 :(得分:0)
答案是你需要一个公共数据库来编写和阅读你的公共变量。
通过普通的公共数据库,您甚至可以使用简单的xml文件 - 但它必须是文件,服务器之间的通用共享文件,这是最简单的方法。
答案 2 :(得分:0)
听起来是时候将一些数据移到持久性存储(数据库,文件系统),并可选择添加一个缓存层(我们很高兴AppFabric用户)以获得性能。