Asp.net静态可变生命周期刷新和PostBack

时间:2009-11-11 09:29:26

标签: asp.net static

解决方法:

我已经声明了一个类级公共静态变量,并在ASP.NET 3.5的环境中使用值0进行初始化 在加载事件I中,该变量增加1

问题:

  1. 获取页面刷新后甚至Postback,我得到该变量的最新值。 声明为STATIC的变量,未被页面刷新和Postback重置?
  2. 我只是关闭浏览器并关闭VS 2008 IDE - 即使我重新打开,重新运行相同的Web应用程序,我得到的最后一个递增值,不是0。 我想知道在我关闭申请后这是怎么可能的。
  3. 你能帮忙吗?

3 个答案:

答案 0 :(得分:5)

静态变量对整个AppDomain有效。当您关闭浏览器时,不会关闭应用程序,因为它继续在Web服务器上执行。哦,忘了提一下:尽量避免在没有正确锁定机制的情况下在多线程应用程序中使用静态变量,否则可能会遇到竞争条件。

答案 1 :(得分:4)

静态变量在应用程序域的持续时间内保留其值。

在重新启动Web服务器(IIS)或重新启动之前(当它决定需要刷新其使用的资源时),它将在许多浏览器会话中存活。

答案 2 :(得分:2)

  

静态变量对于有效   整个AppDomain。

关闭VS 2008 IDE和/或停止调试并不总是足以使托管您网站的AppDomain失败。 (即使网站托管在Vs 2008测试服务器中。

  

一个简单的解决方案就是“触摸”了   web.config文件。 (例如,添加一个空格   并保存它)

这将在新的app-domain中处理下一个请求。