有an article建议将ASP.NET应用程序状态存储在HttpApplication类(在Global.asax.cs中)的静态成员中。ASP.NET中的静态变量
如何在其他类的静态成员中存储应用程序状态?
我试过这样做,似乎有几个这些变量的实例可以存在(每个AppDomain的单个实例?)。这是否属实,我们应该只使用应用程序类的静态字段?或者没关系?
有an article建议将ASP.NET应用程序状态存储在HttpApplication类(在Global.asax.cs中)的静态成员中。ASP.NET中的静态变量
如何在其他类的静态成员中存储应用程序状态?
我试过这样做,似乎有几个这些变量的实例可以存在(每个AppDomain的单个实例?)。这是否属实,我们应该只使用应用程序类的静态字段?或者没关系?
它在许多情况下工作得很好,比Application
好(例如它是强类型的)。只要确保你知道线程和锁定问题。
作为一种个人体验,我设法缓存了几个网站中的static
类中ASP.NET应用程序的配置信息。
这是真的,我们应该总是只使用应用程序类的静态字段?
是的。用户特定的数据(会话数据)不应该在这里。
您网站的所有用户都在同一个应用程序实例中,因此将共享相同的静态变量。例如,它绝对不是会议的好替代品。
如果您在web应用程序中执行的任何操作都不仅仅是从中读取,您可能会遇到带有静态变量的大问题。 Asp.net是一个多线程环境。应用程序集合在Get或带锁的Set期间会为您锁定。如果你使用静态变量,那么就没有锁定。
我建议使用web.config将所有只读变量存储在它自己的部分中。
我遇到了我从另一个开发人员继承的代码。客户正试图弄清楚为什么小规模的多用户测试不能保持奇怪的数据。当我看到代码并解释了问题时,结果是一个集体* headlap!*相当简单的修复,现在我们终身拥有一个客户端。 :) – 2009-05-12 19:53:49