刚上线的网站session老丢失!!
直接点解决!
直接点解决!
解决方案 »
- 如何循环替换模板template.htm的参数?
- 多个System.Threading.Timer调用同一函数问题
- 高手求解,分多时再加上,在此先谢
- 请帮我解释一下,这段代码中没一句代码的意思,谢谢! 在线等!!急急!!
- 请问一个有关死锁的问题
- Repeater当前行号怎么取得?
- 请问DataGrid限定了高度,如果数据量很小,则表格的间距很大,请问如何处理?
- 如何在.aspx中引用wet用户控件中的web控件
- 怎样实现图形验证码的刷新!
- 调查一下,有多少人在用水晶报表啊,以及关于水晶报表限制的问题
- ScriptManager.RegisterStartupScript 问题
- 帮帮忙,卡住了。之点名道吧
你在网上搜一下吧,很多的
<system.web>
<sessionState timeout="30"></sessionState>
时间大一点
<system.web>
<sessionState timeout="30"></sessionState>UP不能超过24小时~
Session是跟浏览器进程标识相关的
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />保存session
报错,不明白 :
无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。
是管理员后台登录 session和cookie结合???
1. 改代码,查错,这是解决问题的根本办法,否则你的站点运行效率会很低2. 更改Session的存储方式,可以改成sql server,或者stateserver都可以至于无法序列化Session,你看看你是不是往Session里添加了 没有标记为可序列化的对象
就是创建session时往集合里添加一个元素,销毁session时将集合里的相应元素销毁。
还有说错了,不是静态类,是在全局文件global.asax中创建集合。
希望对你有帮助
在配置文件中设置方式
<system.web>
<sessionState timeout="30"></sessionState>
没有意义。很明显,如果到了这个时间,还叫做“丢失Session”吗?
<compilation debug="true" targetFramework="4.0" />
...
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx"
timeout="20"
slidingExpiration="true" cookieless="AutoDetect"
protection="All"
requireSSL="false"
enableCrossAppRedirects="false"
defaultUrl="Default.aspx"
path="/"
/>
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="20" />
...
</system.web>
1。估计你的IIS上的Session 存储时间设置的不对
2。你的程序上的问题,有些信息比如Dataset或是DataTable如果用Session 存储的话,会丢失行或其他一 些内容的状态信息
string str=Session["dd"].ToString();
Session.Remove("dd");
Session["dd"]=str;
是这样的。避免以(默认的)InProc模式使用Session,除了当你拥有服务器时可以选择各种服务器解决方案,最简单的方法就是在设计应用程序的当初就不使用Session集合。当Session集合数据丢失时,其实SessionID并不丢失。因此严格说“session丢失”是有歧义的,不过可以理解,因为Session集合被误解得太深了(因为连static变量都也是一样全都丢失了啊)。
我以前也遇到过。楼主看看我写的个人总结里面的描述是不是和你的一样。
问题描述:
在本地搭建的服务器上测试系统时,一切正常。但是上传至服务器上以后,以正常的账户登录,发现经常出现无缘无故被弹出至登录界面的问题,在系统中采用的是session来保存用户的登录名,权限等信息。仔细检查所有代码后发现,只有在session不存在或不具有某种权限的用户访问了需要该权限才能访问的页面的情况下才会被系统弹出登录界面。我们又以admin超级管理员账户登录,该账户拥有系统所有的权限,但是仍然存在该问题,因此不可能是因为权限不正确而被弹出系统的。
我们又猜测可能是因为session失效时间过短引起该问题。但是检查后发现,在服务器默认设置中,session失效时间是20分钟,即鼠标键盘无动作20分钟后session将自动失效,session失效后系统将不能登录,为了验证是否是session超时而被弹出,我们在实际测试中不停的操作,但是仍然存在该问题,登录系统后最短时间几秒,最长时间不过几分钟即会被弹出系统,因此不可能是因为session超时引起的。
鉴于在本地服务器上测试无任何问题,因此应该与服务器有一定关系。通过咨询服务器管理老师,发现在该服务器上托管了大量网站,而这些网站的日常访问量均比较多,各个网站的访问量加起来是巨大的,因此我们猜测可能是因为session的存储模式引起的该问题。通过查询资料得知,ASP.NET中Session的存储模式有以下三种:
1、InProc
session存储在进程内,即inetinfo.exe这个进程中。
2、SQLServer
会话状态将使用进程外 SQL Server 数据库来存储状态信息。
3、StateServer
会话状态将使用进程外 ASP.NET 状态服务来存储状态信息。
而IIS默认是以InProc方式来存储session的,即存储在 IIS进程中,也就是inetinfo.exe这个进程。当inetinfo.exe进程不稳定或崩溃时,这些信息也就会丢失。另外,当IIS关闭,重启时Session信息也会丢失。
通过分析,我们认为可能是因为该服务器上网站过多,频繁的网站访问使inetinfo.exe这个进程不稳定从而导致了session的丢失从而被弹出系统。 解决方法:
我们更改了session的存储方式,以StateServer服务方式来存储session,并开启了远程服务器上的stateserver服务,修改后测试时再也没有出现这个被弹出系统的问题。问题得到解决。
我以前也遇到过。楼主看看我写的个人总结里面的描述是不是和你的一样。
问题描述:
在本地搭建的服务器上测试系统时,一切正常。但是上传至服务器上以后,以正常的账户登录,发现经常出现无缘无故被弹出至登录界面的问题,在系统中采用的是session来保存用户的登录名,权限等信息。仔细检查所有代码后发现,只有在session不存在或不具有某种权限的用户访问了需要该权限才能访问的页面的情况下才会被系统弹出登录界面。我们又以admin超级管理员账户登录,该账户拥有系统所有的权限,但是仍然存在该问题,因此不可能是因为权限不正确而被弹出系统的。
我们又猜测可能是因为session失效时间过短引起该问题。但是检查后发现,在服务器默认设置中,session失效时间是20分钟,即鼠标键盘无动作20分钟后session将自动失效,session失效后系统将不能登录,为了验证是否是session超时而被弹出,我们在实际测试中不停的操作,但是仍然存在该问题,登录系统后最短时间几秒,最长时间不过几分钟即会被弹出系统,因此不可能是因为session超时引起的。
鉴于在本地服务器上测试无任何问题,因此应该与服务器有一定关系。通过咨询服务器管理老师,发现在该服务器上托管了大量网站,而这些网站的日常访问量均比较多,各个网站的访问量加起来是巨大的,因此我们猜测可能是因为session的存储模式引起的该问题。通过查询资料得知,ASP.NET中Session的存储模式有以下三种:
1、InProc
session存储在进程内,即inetinfo.exe这个进程中。
2、SQLServer
会话状态将使用进程外 SQL Server 数据库来存储状态信息。
3、StateServer
会话状态将使用进程外 ASP.NET 状态服务来存储状态信息。
而IIS默认是以InProc方式来存储session的,即存储在 IIS进程中,也就是inetinfo.exe这个进程。当inetinfo.exe进程不稳定或崩溃时,这些信息也就会丢失。另外,当IIS关闭,重启时Session信息也会丢失。
通过分析,我们认为可能是因为该服务器上网站过多,频繁的网站访问使inetinfo.exe这个进程不稳定从而导致了session的丢失从而被弹出系统。 解决方法:
我们更改了session的存储方式,以StateServer服务方式来存储session,并开启了远程服务器上的stateserver服务,修改后测试时再也没有出现这个被弹出系统的问题。问题得到解决。
支持以上的说明.分析的正确,处理方法也不错,楼主可以值得一试.
http://topic.csdn.net/u/20100721/14/9c6b2d58-05a7-40ff-9e9f-39eec8e25043.html
最后面有解决办法
1.在页面@pagez指令后加上EnableSessionState=true或者readeonly.
2.配置文件中修改为:<sessionState mode="StateServer" stateNetworkTimeout="20" stateConnectionString="tcpip=127.0.0.1:42424" />
3.改计算机服务中的StateServer由手动改为自动。EnableSessionState=true 那个页面加? 是继承页面 还是存Session页面?