一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。
------------------------------------
我遇到的是 第三种
我已经 在Window服务中将ASP.NET State Service 启动。

启动StateService之后,还需要配置好Web.config中StateMode为StateServer方可,不会丢失Session,除非有什么东西在不断地清除Session。

操作如下

1。打开web.config文件,设置如下:

<!--  会话状态设置
          默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
          如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
         若要禁用 Cookie,请设置 sessionState cookieless="true"。
    -->
    <sessionState   mode="StateServer"             //就是修改这里为“StateServer”
    />

2。打开“控制面板--管理工具--服务”,找到ASP.NET State Service这个服务,将其设为自动启动。

posted on 2011-05-31 13:00  露水丛生  阅读(351)  评论(0编辑  收藏  举报