开发asp.net应用时,修改web.config中的SessionState节点。
使用
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>
代替
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>
InProc模式
优点:获取session状态的速度快,session状态直接存储在iis的进程中。
缺点:易丢失,经常需要重新登录
StateServer模式
优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态
缺点:获取session状态的速度比InProc慢一些,毕竟是两个不同的进程。
在开发的时候,对应用有一点修改,就会导致应用的重启,这时候如果使用InProc模式
,那么每次都需要重新登录,比较浪费时间.建议使用StateServer模式。并在iis里面设置超时时间长一些。
注:使用StateServer模式的时候
1、要开启“ASP.NET State Service”服务(设为“自动”)
2、如果stateConnectionString的值不是127.0.0.1或者localhost等代表本地地址的值,需要修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state \Parameters 节点 → 将 AllowRemoteConnection 的键值设置成“1”(1 为允许远程电脑的连接,0 代表禁止)→ 设置 Port (端口号)
3、session中存储非序列化的对象,如果违反会抛出
无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。这样的异常。如果向session存储自定义的对象,那么该对象的类上一定要加上[Serializable]注释。
分享到:
相关推荐
InProc 时 才会引发 Session End 事件 如果会话模式 设置为 StateServer 或 SQLServer 则不会引发该事件 Application Lock ; Application["num"] Convert ToInt32 Application["num"] 1; ...
主要介绍了C#实现简单获取及设置Session类,涉及C#针对session的设置及获取的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
解决跨子域网站之间的SESSION取值问题,简单实现,只需要改改配置文件就OK.
如果会话模式设置为 StateServer // 或 SQLServer,则不会引发该事件。 Application["onlineCount"] = Convert.ToInt32(Application["onlineCount"]) - 1; Application["onlinePeople"] = Application[...
sessionState timeout=”timeout in minutes” cookieless=”[true|false]” mode=”Off|InProc|StateServer|SQLServer” stateConnectionString=”tcpip=server:port” stateNetworkTimeout=”for network ...
5章_第7节 使用Session对象模拟实现购物车 Session存储模式(StateServer Sqlserver的实现)
将web.config打开,会看到有一行是<sessionState mode=”InProc” stateConnectionString=”tcpip timeout=”20″/>,如果没有,请在的下一行添加,再将其中的InProc改为StateServer,保存即可。 解决方法: 如果...
1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode=’StateServer’ stateConnectionString=’tcpip sqlConnectionString=’data source=127.0.0.1;Trusted_Connection cookieless=’true’ ...
Asp.net解决session丢失问题的两种方案,以及session丢失的原因。参考一些网上资料,自己总结出来解决方案,顺便附带两个测试案例。还有不清楚的请联系我QQ:394023002 附加信息:周
If session mode is set to StateServer // or SQLServer, the event is not raised. } void Application_BeginRequest(object sender, EventArgs e) { Response.Write("\t\n "+HttpContext.Current....
同远OA+HR+CRM综合办公管理系统源码 1. 开发环境为Visual Studio 2012,数据库为SQL Server 2012 ... 若程序打开后提示缺少 SQLDMO 引用,则在...--<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.
<sessionState mode=StateServer stateConnectionString=tcpip sqlConnectionString=data source=127.0.0.1;Trusted_Connection cookieless=false timeout=40/> 2、在Global.asax中添加启动启动ASP.NET 状态服务...
最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里。最后使用存储在StateServer中的办法解决了问题
golang terraform 状态服务器用于检索和存储 ... 使用给定的-data_path=/data/storage状态 url http://<server>/folder/name-for-your-state将被扩展以将状态存储在名为/data/storage/folder/name-for-your-state 。
广播状态示例 这是一个正在进行的工作。 班级 类Dataserver将侦听端口 7777 上的连接,并将每秒两次向任何连接的套接字发送一个随机数 1-6。 类StateServer将侦听端口 7778 上的连接并允许在stdin上stdin整数。 输入...
9:session设置 <sessionState mode="StateServer" cookieless="false" stateConnectionString="tcpip=127.0.0.1:42424" timeout="600" stateNetworkTimeout="14400" /> 10:上传员工照片 11:员工导入
解压密码:qnncd 1.电脑或服务器应启动StateServer 服务 2.应用程序池: .net 2.0 经典 3.用户名:admin 密码:admin