知识大全 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

ASP.Net的Session  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNet中的S

知识大全 asp.net form验证

  读书时最常用判断登陆的就是登陆时用cookie或session存储然后每个页面判断是否登陆  这样做每个页面都要判断很麻烦  毕业半年了这半年学会了用类重写事件OnLoad()来这样每个页面继承这

知识大全 Asp.net的Session过期

Asp.net的Session过期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目录删除及重命

知识大全 ASP与ASP.NET转换Session数据桥的应用

ASP与ASP.NET转换Session数据桥的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Asp.Net处理Session失效解决方案

Asp.Net处理Session失效解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  检查

知识大全 ASP.NET Session 详解

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.Net Session超时的问题

ASP.NetSession超时的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 ASP.NET Session的七点认识

ASP.NETSession的七点认识  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNE