首页 新闻 会员 周边 捐助

BlogEngine里首次加载帖子时的疑惑(关于静态变量的有效性问题)

0
悬赏园豆:5 [已解决问题] 解决于 2009-08-05 15:13
Code

上面是BlogEngine里首次加载帖子的代码,它将所有帖子一次性全部加载到_Posts静态变量里,这样,以后就直接从里面读取而无需访问数据源.

因为_posts是静态变量,那么它应该在网站的整个运行期间都是有效的,只要网站没重启,它都应该存在于那里的.为了证明这一点,我在代码里加了记录加载时间的代码,按理说应该只会记下一条记录,结果记录下了很多条,显示每隔数十分钟就会重新加载一下,请问这是怎么回事呢?

Ryanism的主页 Ryanism | 初学一级 | 园豆:39
提问于:2009-08-05 10:42
< >
分享
最佳答案
0

静态变量是没问题的,可能是出于刷新缓存的原因,在某处设置了_Posts=null,你在这个类里找找看。

如果找不到的话去Global.asax.cs或Global.asax里,在这个方法中写入日志:

        protected void Application_Start(object sender, EventArgs e)
        {

 

   }

如果这个方法与你上面做的记录总是同期出现,那就说明某种原因导致网站重启了,可能是致命错误,或者是改动了网站内的配置文件、页面文件或者XML等文件。

收获园豆:5
斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-08-05 11:27
我试了一下,果然Global.asax里也会出现该记录,看来是网站重启了,只是确切原因还没有找到,请问app_data里文件的改变会导致网站重启吗?
Ryanism | 园豆:39 (初学一级) | 2009-08-05 13:50
我把你自己找到的答案贴出来吧,供别人参考:) —————————————————————————— Ryanism 致 我 我找到原因了,因为这套程序刚刚推出来,除了我自己就没有什么人访问了.所以我不访问它,它就处于空闲状态,而IIS的应用程序池里的空闲超时默认为20分钟,也就是说我20分钟内不访问它就会把工作进程关闭,从而导致了下次访问时网站的重启. 这几天来一直帮我解答问题,多谢多谢!
斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-08-05 16:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册