本人基本不使用Session,很经常都是通过Cookie来完成这些问题,但是今天碰到同事弄得一个项目使用Session来验证验证码的,出现了这个问题,下面是在网路上搜到的一个解决方案,记录下来一边后面使用。
异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
方法一:
在"管理工具"中的"服务"启动"ASP.NET State Service"
方法二:
web.config中配置SessionState的mode为StateServer,但指定的服务器没有开启那个服务。
改成InProc即可。
方法三:
把杀毒软件关掉,他可以以为运行生成的文件是带病毒的,会跟你阻止页面生成
=============
Web.Config里面:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
你是不是使用“StateServer”,如果是,请参考:
使用 StateServer 模式
确保 ASP.NET 状态服务正在将存储会话状态信息的远程服务器上运行。该服务是随 ASP.NET Premium 版一起安装的,并且该服务默认情况下位于 <Drive>:\Program Files\ASP.NET\Premium\version\aspnet_estate.exe。
在应用程序的 Web.config 文件中,设置 mode=StateServer 并设置 stateConnectionString 属性;例如 stateConnectionString="tcpip=sarath:42424"。