5

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

我有两个负载平衡配置的生产 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”作为服务器名称。

因此,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. prod网站和状态服务器之间的某种临时网络问题?不过,它们确实在同一个物理机架中彼此相邻。

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

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

4

3 回答 3

5

从那以后发生过这种情况吗?简单的答案是问题出在数据库服务器上,而不是网络应用程序上。db服务器上的日志中是否有任何相关错误?

两个应用程序都抛出错误这一事实表明问题所在是一个公共资源。前一段时间,我们一直在寻找类似的问题,但最终发现了一个有故障的光纤通道设备。(这低于我的 OSI 级别,不确定细节)。

于 2010-11-12T01:22:25.873 回答
4
  1. 开始–> 管理工具–> 服务

  2. 右键单击 ASP.NET 状态服务,然后单击“开始”</p>

它工作正常我们需要按照步骤操作

于 2012-10-05T05:12:49.913 回答
3

之前当我们的基础架构团队忘记在我们的生产设备上安装 3.5 时尝试偷偷安装 3.5 时,也遇到过类似的问题。框架更新后不反弹服务器只会导致各种奇怪的问题。

于 2010-11-22T15:49:46.823 回答