Session 丢失问题! 公司系统 经常出现 session 丢失问题,以前都是用cookie 因为是2个项目在一个目录下,可能cookie命名有问题老冲突 必须 删除cookie才行,后来把其中一个项目全 改成session了 结果会出现丢失现象。而且我发现好像都是打开新窗口的时候丢失 直接跳转没事~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置session inproc -->stateserver .开启asp.net state服务不要将session存储在IIS进程内 一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。 二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。 三:程序有框架页面和跨域情况。 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) 第二种是检查代码有无Session.Abandon()之类的。 第三种是在Window服务中将ASP.NET State Service 启动。 今天遇到asp.net session丢失了,然后又回来了,session里存储的是用户信息,最后导致每次刷新是不同的用户或是未登录状态。很让人吐血的问题。 搞了2天没搞出来,最后重写了验证机制,都放在了cookie里了,session不敢用了。 今天发现,问题是由于设置iis6的 应用程序池内的性能内的最大web进程数导致的,由于session默认是存放在web进程里的,进程开多了,导致session不能共享,每次刷新又由不同的进程来处理,所以就导致刷新出来不同的用户,前提是在本机登录过这些用户。 解决方法可以用stateserver或者用sqlserver模式来存储session。 由于google没搜到类似问题,所以这里拿出来说一下这个让我头痛了2天,最后修改了n多页面的问题。 http://tonyqus.cnblogs.com/archive/2006/04/19/378904.html webconfig文件里<system.web>节下加上<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20"/>并且在服务里把asp.net state服务开启 session服务器端cookie客户端一个是密文一个是明问 及时清空释放资源session失效时间设置大点再就是跳转页面操作尽量少用。response.redirect(); Session丢失跟服务器设置和浏览器设置都有关系,采用Cookie是比较好的方法。Cookie冲突,你可以采用的 Cookie名称,改成Session的工作量更大 或者你把session存储在专门的session数据库服务器里面。 asp.net state服务 每次重启服务器的话 都要重新开启吗? 在我很复杂的全国连锁企业管理系统中,cookie使用也没有超过10个的时候。我想你们是不是又滥用了cookie了?(没有办法,让程序员当项目经理就会这样,他自己尚且不能架构软件又怎能控制好其它程序员去随意“设计”?)实际上不论cookie还是cache的key,都需要有个命名规范(1分钟制定出的规范),例如在命名中包括工程项目设置class名作为前缀。 呵呵,namespace不会用啊:[开发组织.][项目名称.][NameKey]或者[开发组织_][项目名称_][NameKey]还有嘛:cookie的声明是全局常量,实现定义好,程序员只能操作,不能自己随便定义 是不是把cookie给清空了额。session对话标记也是在cookie中保存的。 session丢失情况比较多,用statesever试试看 “cookie命名冲突”,那就避免冲突! 但是用 cookie的话关闭浏览器不会自动清除cookie吧 最好不要用太多的session~ 或者设置过期时间 1。把session的过期时间设置大点。。2.再重新检查数据访问层的代码。sqlconnection,sqldatareader都要关闭和注销,sqlcommand也要注销3.跳转尽量少用response.Redirect();4.定时回收服务器资源。。5.实在不行。。sqlserver方式保存session以上都是经验不知道对你有不有帮助 wpf引用一个文件夹里的资源文件 datalist数据向上滚动怎么实现,分不多啦,只能给大家20分啦 C#调用Excle模版 打印 参数传递 请教,NextValue()始终返回的0 GDI+如何获得指定大小的字体 C#中向Windows命令行传递参数的问题? 请教做时间提醒器的一个问题 关于C#调用webservice的问题 使用c#winform ,如何实现Excel导入到datagridview中? 控制台程序,怎样重启自己? 怎么才能发送指定目录目录下的邮件
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。 今天遇到asp.net session丢失了,然后又回来了,session里存储的是用户信息,最后导致每次刷新是不同的用户或是未登录状态。很让人吐血的问题。
搞了2天没搞出来,最后重写了验证机制,都放在了cookie里了,session不敢用了。
今天发现,问题是由于设置iis6的 应用程序池内的性能内的最大web进程数导致的,由于session默认是存放在web进程里的,进程开多了,导致session不能共享,每次刷新又由不同的进程来处理,所以就导致刷新出来不同的用户,前提是在本机登录过这些用户。
解决方法可以用stateserver或者用sqlserver模式来存储session。
由于google没搜到类似问题,所以这里拿出来说一下这个让我头痛了2天,最后修改了n多页面的问题。
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20"/>
并且在服务里把asp.net state服务开启
cookie客户端
一个是密文
一个是明问
或者你把session存储在专门的session数据库服务器里面。
[开发组织.][项目名称.][NameKey]
或者
[开发组织_][项目名称_][NameKey]
还有嘛:
cookie的声明是全局常量,实现定义好,程序员只能操作,不能自己随便定义
session对话标记也是在cookie中保存的。
以上都是经验不知道对你有不有帮助