看风者

我们就象水中的一介浮萍,在风中飘来飘去.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

http://community.csdn.net/Expert/topic/3100/3100218.xml?temp=.4426386
还有可能就是你在测试期间改动了,网站的文件。

 


下面是帮助中的内容:
(ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconsessionstate.htm)
ASP.NET 提供一个简单、易于使用的会话状态模型,您可以使用该模型跨多个 Web 请求存储任意数据和对象。它使用基于字典的、内存中的对象引用(这些对象引用存在于 IIS 进程中)缓存来完成该操作。使用进程内会话状态模式时请考虑下面的限制:

使用进程内会话状态模式时,如果 aspnet_wp.exe 或应用程序域重新启动,则会话状态数据将丢失。这些重新启动通常会在下面的情况中发生:
在应用程序的 Web.config 文件的 <processModel> 元素中,设置一个导致新进程在条件被满足时启动的属性,例如 memoryLimit。
修改 Global.asax 或 Web.config 文件。
更改到 Web 应用程序的 \Bin 目录。
用杀毒软件扫描并修改 Global.asax 文件、Web.config 文件或 Web 应用程序的 \Bin 目录下的文件。
如果在应用程序的 Web.config 文件的 <processModel> 元素中启用了网络园模式,请不要使用进程内会话状态模式。否则将发生随机数据丢失。
 

 


我也碰到过。本机器上的Session或者Cookie丢失。
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="40"
/>
mode=""的三个属性。本地/其他机器/sqlserver。
很多网络架构,各个服务器之间都是通过一台专门保存状态的服务器来保存比如说session,cookie..

 

 


我遇到的也是在框架(frame)内登陆有时session会丢失,无奈只好放弃框架

 

 

启动ASP.NET State Service服务

然后设置Webconfig文件。

<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:999999"(自定义)
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"(自定义)
cookieless="false"
timeout="20"
/>

 


我以前遇到这种问题,我用了以下几个方法来解决。现在也没有这种情况发生了。
1、release,不要debug发布。
2、<sessionState cookieless="true" 把cookieless设为true。因为客户端禁用cookie时,session也无效。
3、在IIS中把Session过期时间延长。
4、让杀毒软件不扫描bin文件夹下的文件和Web.Config文件 。
以上我是不明不白的做的。不过Session正常使用了!呵呵~~我幸运!

 

 

没啥好讲的,不要用Session好了,直接用Forms认证把,
我前两天的系统就是用这个搞定的,觉得挺好的。

 

 


刚碰到一个类似的问题:在使用frameset的时候,session变量丢失。
在微软的网站上找到了解决的方法
http://support.microsoft.com/kb/323752/EN-US/
不知道是否有用?

 


IIS--->>应用程序连接池--->>属性---->>[回收][性能][运行状况]里的各项参数尽量都往大的改^_^),我不知道改拉那个才对的,反正我改完后所有的session都好拉.客户的网站和动网论坛的后台也跟着好拉

 

 

 

 

 

 

 

 


将Session保存在State Server里:

1.启动服务“ASP.NET State Service”,
2.然后,修改web.config:
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="140000"
/>

注意://mode="StateServer"这种模式下即使修改页面也不会丢失session!


当然:
mode="InProc"如果你的模式为这种,修改页面的时候会丢失session!!!!!!

 


在WebConfig里将Session的Mode设成SQLServer或者StateServer都不会丢Session的,前者需要写入数据库,后者需要系统开StateServer服务。

posted on 2005-10-28 16:56  看风者  阅读(650)  评论(0编辑  收藏  举报