【发布时间】:2011-05-08 19:54:07
【问题描述】:
设置:2 个 Web 服务器和一个单独的状态服务器
我有两个负载平衡配置的生产网络服务器。他们托管的 ASP.NET Web 应用程序在其 web.configs 中使用此行共享状态(如网络场):
<sessionState mode="StateServer" stateConnectionString="tcpip=9.9.9.9:42424" cookieless="false" timeout="60"/>
9.9.9.9 是运行 asp.net 会话状态服务的机器的 IP(好吧,它真的不是 9.9.9.9,为了保护无辜而更改)。它是第三台机器(实际上是数据库服务器。
它工作得很好,直到...
错误:网站关闭!
网站突然宕机,只显示一个通用的 asp.net 错误页面(“关闭自定义错误以查看此错误”或其他)。
应用的日志记录了实际的错误信息:
发生未处理的异常无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State 服务已启动并且客户端和服务器端口相同。如果服务器在远程机器上,请通过检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值来确保它接受远程请求。如果服务器在本地计算机上,并且如果前面提到的注册表值不存在或设置为 0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称。
因此,网络应用似乎无法联系状态服务器 (9.9.9.9)。
我“尝试开启 auf 然后 onnegen” - 重新启动状态服务器解决了问题。
为什么?
我真的很想知道发生了什么以及为什么这样我可以防止它再次发生。
到目前为止,我只有两个理论:
-
在那个时候在状态服务器上应用了对 .net framework 4 的 Windows 更新。那么也许更新对 asp.net 状态服务有影响? Windows 事件查看器显示 .net 4 已经记录了一个警告:
对 IIS 元数据库的更新已中止,因为 IIS 未安装或在此计算机上被禁用。要将 ASP.NET 配置为在 IIS 中运行,请安装或启用 IIS,然后使用 aspnet_regiis.exe /i 重新注册 ASP.NET。
prod 网站和状态服务器之间的某种临时网络问题?不过,它们确实在同一个物理机架中彼此相邻。
???任何其他想法,有人吗?
任何人以前见过这个,或者能够纠正我的任何事情?
【问题讨论】:
标签: asp.net session-state stateserver windows-update