关于静态对象.net的问题

时间:2011-07-26 13:17:27

标签: c# asp.net iis-7

在一个会话中静态变量值是相同的还是在应用程序服务器级别它们的值是相同的?

3 个答案:

答案 0 :(得分:11)

它们处于AppDomain级别 - 对于所有静态变量都是相同的,无论它们是否在ASP.NET中。

所以:

  • 如果您使用来自不同AppDomains的相同类,您将获得单独的变量
  • 如果您的AppDomain被回收,您将获得单独的变量
  • 如果两个请求转到不同的计算机,您将获得单独的变量
  • 如果两个并发请求命中了同一个AppDomain,它们可能会互相混淆(因此count++之类的东西不安全)

答案 1 :(得分:0)

我认为只要iis进程存在,静态变量就会保持其值

答案 2 :(得分:0)

在重新启动应用程序之前,该变量仍将在内存中。