知识大全 ASP.NET中的session存储模式运用
Posted 知
篇首语:勤奋是你生命的密码,能译出你一部壮丽的史诗。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET中的session存储模式运用相关的知识,希望对你有一定的参考价值。
ASP.NET中的session存储模式运用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在中的Session存储方式不象asp那样单一 一共提供了三种存储方式 由于最近一个 多人使用的web软件出现了故障 用户每天早上在某一时刻出现难以登陆现象 接着Session丢值出现 只有重启IIS 或机器 这时程序恢复正常了 整天都不会出现同样的问题 但是第二天依旧!这种现象持续了好几天 我检查了一下日志文件 高峰每秒访问人数大概 人左右 同时大概 多人在线 以后访问人数还会增加 为了解决这个怪问题 先从软件着手 故而三种方式都应用了一番
打开nfig文件
- < sessionState mode= InProc stateConnectionString= tcpip= : sqlConnectionString= data source= ;Trusted_Connection=yes cookieless= false timeout= />
其中默认的mode是InProc类型 这种模式和以前ASP模式一样 就是服务器将Session信息存储在IIS进程当中 当IIS关闭 重起后这些进程信息都会丢失 但这种模式的性能最高(具体没测 看书上说) 这种模式是的默认方式
由于这种模式出现了故障 当时我的考虑就是由于访问量过大的原因 导致Inetinfo exe进程崩溃 用户难以登陆以致Session丢值出现故障 我采用了另外一种Session的存储方式把Session信息存储在进程外
首先 打开管理工具找到服务 找到名为: State Service的服务 启动它 并且改成自动启动 这时你可以在任务管理器中看到一个名为aspnet_state exe的进程 这就是我们保存session信息的进程
然后 回到nfig文件中把Mode的值改为StateServer 保存文件 OK
- < sessionState mode= StateServer stateConnectionString= tcpip= : sqlConnectionString= data source= ;User id=sa;password=sa cookieless= false timeout= />
这种模式当我们重起IIS 保存的session值不会丢失 另外这种方式还可以把信息保存在其他机器的进程中 不过还要更改 stateConnectionString= tcpip= : IP地址改为其他机器即可
另外还采取了其他的措施 比如把数据库和Web服务器分开 数据库服务器不提供WEB服务 Web服务器不提供数据库服务
然后把连接池扩大 由于中ADO NET数据访问默认连接池数量为 后来我扩大到 顺便把写法加上来
Server=(local);Database=rgs;password=sa;user ID=sa;Max Pool Size = ; Min Pool Size = ;Pooling=True
最后把nfig中的ProcessModel中的memoryLimit改为 默认为 表示内存占用超过 %后iis进程会自动重起 接着还做写其它一些优化IIS的方法 把注册表的IIS缓存加大等等
当我做完这些优化步骤后 整个软件运行比较良好 第二天没有发现堵塞的现象 但是第三天情况又出现了 实在没办法 我采取了最后一种ASP NET中的session存储方法就是将Session存储在SQLServer中 我想这样稳定性应该强些
要使用SQLServer中 首先在会话状态的SQLServer的计算机上 运行InstallSqlState sql或InstallPersistSqlState sql(默认位置:systemroot\\Microsoft NET\\Framework\\versionNumber下面)两个脚本都创建一个名为ASPState的数据库 两个脚本的差别在于放置ASPStateTempApplication和ASPStageTempSessions表的位置 InstallSqlState sql脚本将这些表添加到TempDB数据库 该数据库在计算机重起时将丢失数据 而InstallPersistSqlState sql脚本将这些表添加到ASPState数据库 该数据库重启时保留会话数据
然后在应用程序的nfig文件中 把< sessionState>元素的mode属性设置为SQLServer 最后将sqlConnectionString属性设置为Integrated Security=SSPI;data source=serverName;
- < sessionState mode= SQLServer sqlConnectionString= Integrated Security=SSPI;data source=dataserver; cookieless= false timeout= /> < /sessionState>
如果部署在其他机器上可以更改为 加上用户名和密码
- < sessionState mode= SQLServer stateConnectionString= tcpip= : sqlConnectionString= data source= ;User id=sa;password=sa cookieless= false timeout= />
这样部署完成了 如果不想使用这种可以删除掉 只要在相应的目录(systemroot\\Microsoft NET\\Framework\\versionNumber)找到UninstallPersistSqlState sql或者UninstallSqlState sql文件运行即可 这样就介绍了ASP NET中的session存储模式
最后要注意的是 无论使用StateServer或者SQLServer模式时 当使用session转换对象时
cha138/Article/program/ASP/201311/21731相关参考
ASP.Net的Session 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNet中的S
读书时最常用判断登陆的就是登陆时用cookie或session存储然后每个页面判断是否登陆 这样做每个页面都要判断很麻烦 毕业半年了这半年学会了用类重写事件OnLoad()来这样每个页面继承这
Asp.net的Session过期 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目录删除及重命
知识大全 ASP与ASP.NET转换Session数据桥的应用
ASP与ASP.NET转换Session数据桥的应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Asp.Net处理Session失效解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 检查
ASP.NETSession详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 阅读本文章前需要
知识大全 Asp.Net中NHiernate的Session的管理
Asp.Net中NHiernate的Session的管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Asp.net中判断一个session是否合法的方法
Asp.net中判断一个session是否合法的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NetSession超时的问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
ASP.NETSession的七点认识 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNE