Asp.net 突然变得;无法向会话状态服务器发出会话状态请求; 设置:2个web服务器和一个独立的状态服务器

Asp.net 突然变得;无法向会话状态服务器发出会话状态请求; 设置:2个web服务器和一个独立的状态服务器,asp.net,session-state,stateserver,windows-update,Asp.net,Session State,Stateserver,Windows Update,我有两台负载平衡配置的生产web服务器。他们托管的ASP.NET web应用程序在其web.configs中使用以下行共享状态(如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,更改为保护无辜者)。它是第三

我有两台负载平衡配置的生产web服务器。他们托管的ASP.NET web应用程序在其web.configs中使用以下行共享状态(如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\Cu的值来确保它接受远程请求rrentControlSet\Services\aspnet\u state\Parameters\AllowRemoteConnection。如果服务器位于本地计算机上,并且如果前面提到的注册表值不存在或设置为0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称

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

我“试着转动如果auf,然后转动OnGen”-重新启动状态服务器修复了这个问题

为什么? 我真的想知道发生了什么,为什么,这样我才能防止它再次发生

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

  • 当时在状态服务器上应用了对.net framework 4的windows更新。因此,该更新可能对asp.net状态服务造成了影响?windows事件查看器显示.net 4在当时记录了一条警告:

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

  • prod网站和state server之间存在某种暂时的网络问题?但它们确实紧挨着坐在同一个物理机架上

  • 还有其他想法吗


  • 以前有人见过这种情况,或者能纠正我的错误吗?

    从那以后就发生了吗?简单的答案是问题出在db服务器上,而不是web应用程序上。db服务器上的日志中是否有相关错误


    两个应用程序都抛出了一个错误,这表明问题出在一个共同的资源上。我们花了整整一周的时间追踪类似的问题,最终发现了一个有故障的光纤通道小工具。(这低于我的OSI水平,不确定细节).

    以前,我们的基础架构团队尝试偷偷安装3.5,但他们忘了在我们的生产设备上安装。在框架更新后不跳转服务器只会导致各种奇怪的问题

  • 开始–>管理工具–>服务

  • 在ASP.NET状态服务上单击鼠标右键,然后单击“开始”


  • 工作正常,我们需要按照步骤进行操作

    是的,很抱歉我编辑了问题以使其更清楚:我检查了错误日志(并从该更新中发现了错误)在状态服务器上。只发生过一次,但还没有到24小时,据我们所知,这可能是一个反复出现的问题。+1因为您的回答可能会帮助我说服服务器人员在需要时查看硬件问题。我怀疑框架更新和错误是否是巧合。也许更新未能重新启动状态服务?IIS元数据库错误很奇怪。是的,根据第一手经验,我知道安装新版本的框架确实会停止各种相关服务(IIS、StateServer等)-可能是某些原因导致机器需要重新启动,然后才能重新启动其中一些服务。