今天单位同事的公司网站项目后台打开时突然报错了
错误如下:
异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
打开win2003服务,查看了一下,ASP.NET State service的状态为手动,未启动.重新启动后,错误排除了.
上网查了一下相关资料,原来有两种解决方式:
1.Web.Config里面 把sessionState 的mode改为"InProc" ;
2.在服务中启用"ASP.NET State service"
下面是我们项目中Web.Config的一段代码:
<!--解决Session丢失问题,需要将ASP.NET状态服务开启-->
<sessionState mode='StateServer' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='180'/>
貌似这段代码就是管理项目中的Session的,上网查了下mode不同属性的含义,大致了解,如果以后项目中再有更高级的应用,再详细学习下!
mode 设置将Session信息存储到哪里
Off 设置为不使用Session功能
InProc 设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。
StateServer 设置为将Session存储在独立的状态服务中。
SQLServer 设置将Session存储在SQL Server中。