2014-11-11
每次重启机器以后,在.NET2005上跑Web程序老是遇到这样的问题:

异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求。

这是因为ASP.NET State service状态服务没有打开,因此在执行当前 Web 请求期间生成了未处理的异常。

解决方法:
方法一:
右击“我的电脑”-》“计算机管理”-》“服务和应用程序”-》“服务”,在服务中找到ASP.NET状态服务,启动ASP.NET 状态服务,就可以了。

方法二:
web.config中配置SessionState的mode为StateServer,但指定的服务器没有开启那个服务。
改成InProc即可。
<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"。

方法三:
可能是机器上的杀毒软件在作怪,认为是病毒,不允许页面加载,把杀毒软件关了。