5

我们在虚拟机上托管一个 ASP.net 网站。ASP.net 会话状态服务正在运行。但是,我们每隔一段时间就会遇到以下异常:

消息:无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State 服务已启动并且客户端和服务器端口相同。如果服务器在远程机器上,请通过检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值来确保它接受远程请求。如果服务器在本地机器上,并且如果前面提到的注册表值不存在或设置为 0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称。

我已经验证会话状态服务正在运行,并且它正在尝试连接到本地主机:

<sessionState mode="StateServer" 
stateConnectionString="tcpip=127.0.0.1:42424" timeout="100"/>

在我的研究中,我遇到了以下论坛帖子: http ://forums.asp.net/t/1409990.aspx

但是除了尝试在 SQL 模式下运行会话状态之外,没有任何关于此问题的解决方案。

TL;DR:获取会话状态服务错误,表明服务没有响应,即使服务在同一台机器上运行。

4

2 回答 2

3

经过大量调试后,我发现我们的一位开发人员试图通过将视图状态保存到两个特定页面的会话中来提高视图状态性能。当用户达到大约 20 组不同的视图状态时,会话服务变得超载,并开始崩溃。

我已将页面修改为不再需要视图状态,并且没有发生此异常。

于 2014-01-27T16:21:44.540 回答
2

检查您的会话状态提供程序可执行路径是否设置正确,尝试不同的路径(从 .NET 2.0 到 4.0,反之亦然)。上周我们用 Microsoft 更新修补了我们的服务器,副作用之一是 ASP.NET 会话状态服务的可执行文件从C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_state.exeto无声更改,C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_state.exe我们也有这样的错误。您可以在 Windows 服务控制台中检查它。

于 2013-11-18T18:07:57.890 回答