我遇到一个很奇怪的问题,我的一个站点在我的机器上运行时没有问题(使用了vs2005的服务器),然而当我发布到远程的站点时iis5.5,却经常发生session 和cache丢失的情况,而且这个没有什么规律,有的时候没问题,有的时候一两分钟就没有了,请教大家有没有遇到这样的问题啊。老板已经对我愤怒了。

解决方案 »

  1.   

    cache在内存紧张的时候是会被移除的,每次取的时候应该判断是否为null,为null就重新取一次Session丢失可以采用状态服务器或者数据库保存的方式来解决不过我觉得还是要仔细分析下原因,对症下药
      

  2.   

    请在你的系统目录下查看machine.config文件中的<processModel>配置节中的是否是webGarden = true,并且你项目中的<sessionState mode = "InProc">,如果是这样的话,请改为
    webGarden = false
    重启IIS.
      

  3.   

    Session,Application,Cache这些东西归根接地都可以看做都是静态变量,当应用程序出现超载或者异常得时候,Application 要进行Restart,这时候,原有得静态变量信息就会丢失,找到你这个问题得原因,可以用性能计数器来查看,到底在丢失得前面,应用程序重启计数器是否有变化,如果有变化,说明是应用程序重启造成,这时候你得IO操作很可能造成了系统得异常,也可以根据计数器得变化来查找或者跟踪调试来查找问题所在
      

  4.   

    cache在内存紧张的时候是会被移除的,每次取的时候应该判断是否为null,为null就重新取一次Session丢失可以采用状态服务器或者数据库保存的方式来解决不过我觉得还是要仔细分析下原因,对症下药
      

  5.   

    asp.net2.0 会对站点目录进行监视,如果你的代码里有对站点目录操作(增、删、改)则会引发
    它的重编译、 Restart Application