1 / 4
文档名称:

Session丢失问题原因及解决方案.doc

格式:doc   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Session丢失问题原因及解决方案.doc

上传人:xxj16588 2016/7/28 文件大小:0 KB

下载得到文件列表

Session丢失问题原因及解决方案.doc

相关文档

文档介绍

文档介绍:Session 丢失问题原因及解决方案本文分析了 Session 丢失问题的原因及解决方案。 asp 的 Session 是具有进程依赖性的。 ASP Session 状态存于 IIS 的进程中,也就是 这个程序。正常操作情况下会有 Session 丢失的情况出现。因为程序是在不停的被操作, 排除 Session 超时的可能。另外, Session 超时时间被设定成 60 分钟,不会这么快就超时的。现在我就把原因和解决办法写出来。 Session 丢失原因: 由于 程序是默认配置,所以 文件中关于 Session 的设定如下: < sessionState mode='InProc' stateConnectionString='tcpip=:42424' sqlConnectionString='data source=;Trusted_Connection=yes' cookieless='true' timeout='60'/> 我们会发现 sessionState 标签中有个属性 mode ,它可以有 3 种取值: InProc 、 StateServer?SQLServer (大小写敏感) 。默认情况下是 InProc ,也就是将 Session 保存在进程内( IIS5 ,而 IIS6 是 ), 这个进程不稳定, 在某些事件发生时,进程会重起,所以造成了存储在该进程内的 Session 丢失。哪些情况下该进程会重起呢?微软的一篇文章告诉了我们: 1 、配置文件中 processModel 标签的 memoryLimit 属性 2、 或者 文件被更改 3、 Bin 文件夹中的 Web 程序( DLL )被修改 4 、 文件。更多的信息请参考 PRB: Session variables are lost intermittently in applications Session 丢失解决办法: 前面说到的 sessionState 标签中 mode 属性可以有三个取值,除了 InProc 之外,还可以为 StateServer 、 SQLServer 。这两种存 Session 的方法都是进程外的, 重起的时候,不会影响到 Session 。现在请将 mode 设定为 StateServer 。 StateServer 是本机的一个服务, 可以在系统服务里看到服务名为 State Service 的服务,默认情况是不启动的。当我们设定 mod e 为 StateServer 之后,请手工将该服务启动。这样,我们就能利用本机的 StateService 来存储 Session 了,除非电脑重启或者 StateService 崩掉,否则 Session 是不会丢的(因 Session 超时被丢弃是正常的)。除此之外,我们还可以将 Session 通过其他电脑的 StateService 来保存。具体的修改是这样的。同样还在 sessionState 标签中,有个 stateConnectionString='tcpip=12