我有两个负载均衡配置的生产Web服务器。他们在web.configs中使用此行主持共享状态的ASP.NET Web应用程序(如Web场):
<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状态服务,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请通过检查HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection的值来确保它接受远程请求。如果服务器位于本地计算机上,并且前面提到的注册表值不存在或设置为0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称。
因此,似乎Web应用程序无法联系状态服务器(9.9.9.9)。
我“尝试转动,如果auf然后onnegen” - 重新启动状态服务器解决了问题。
我真的想知道发生了什么,为什么我可以防止它再次发生。
到目前为止,我所拥有的只有两个理论:
在状态服务器上的那个时间周围应用了.net框架4的Windows更新。那么也许更新对asp.net状态服务做了些什么? Windows事件查看器显示.net 4在那时记录了警告:
IIS元数据库的更新已中止,因为未在此计算机上安装或禁用IIS。要将ASP.NET配置为在IIS中运行,请安装或启用IIS并使用aspnet_regiis.exe / i重新注册ASP.NET。
prod网站和状态服务器之间存在某种临时网络问题?它们确实在同一个物理机架中彼此相邻。
???任何其他想法,任何人?
之前有人见过这个,或者能够纠正任何事情吗?
答案 0 :(得分:5)
这是否发生过?答案很简单,问题在于数据库服务器,而不是网络应用程序。数据库服务器上的日志中是否存在任何相关错误?
这两个应用程序都出错了这一事实表明公共资源是问题所在。我们追回了一个类似的问题,一段时间以来一直很好,并最终找到了一个错误的光纤通道小工具。 (这低于我的OSI水平,不确定细节)。
答案 1 :(得分:4)
开始 - &GT;管理工具 - &gt;服务
右键单击ASP.NET状态服务,然后单击“开始”
工作正常我们需要按照步骤
答案 2 :(得分:3)
之前我们的基础设施团队在他们忘记将其安装到我们的生产箱上时试图偷偷安装3.5时遇到了类似的问题。在框架更新之后不会弹出服务器会导致各种奇怪的问题。