突然得到"无法向会话状态服务器发出会话状态请求"

MGO*_*wen 5 asp.net windows-update stateserver session-state

设置:2个Web服务器和一个单独的状态服务器

我有两个负载平衡配置的生产Web服务器.他们在web.configs中使用此行主持共享状态的ASP.NET Web应用程序(如Web场):

<sessionState mode="StateServer" stateConnectionString="tcpip=9.9.9.9:42424" cookieless="false" timeout="60"/>
Run Code Online (Sandbox Code Playgroud)

9.9.9.9是asp.net会话状态服务运行的机器的IP(确实它不是9.9.9.9,改为保护无辜者).它是第三台机器(实际上是数据库服务器).

它工作正常,直到......

错误:网站下来!

突然,该网站出现故障,只显示一个通用的asp.net错误页面('关闭自定义错误以查看此错误'或其他).

应用程序的日志记录了实际的错误消息:

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

因此,似乎Web应用程序无法联系状态服务器(9.9.9.9).

我"尝试转动如果auf然后onnegen" - 重新启动状态服务器修复了问题.

为什么?

我真的想知道发生了什么,为什么我可以防止它再次发生.

到目前为止我只有两个理论:

  1. 对.net框架4的Windows更新在该状态服务器上应用了.那么也许更新对asp.net状态服务做了些什么?Windows事件查看器显示.net 4已经记录了一个警告:

    IIS元数据库的更新已中止,因为未在此计算机上安装或禁用IIS.要将ASP.NET配置为在IIS中运行,请安装或启用IIS并使用aspnet_regiis.exe/i重新注册ASP.NET.

  2. 生产网站和状态服务器之间存在某种临时网络问题?它们确实位于同一个物理机架中.

  3. ??? 任何其他想法,任何人?

有人以前见过这个,或者能够纠正我的任何事情吗?

3Da*_*ave 5

这是发生过吗?答案很简单,问题在于数据库服务器,而不是网络应用程序.数据库服务器上的日志中是否存在任何相关错误?

两个应用程序都抛出错误的事实表明共同资源是问题所在.我们追回了一个类似的问题,一段时间以来一直很好,并最终找到了一个错误的光纤通道小工具.(这低于我的OSI水平,不确定细节).