代码之家  ›  专栏  ›  技术社区  ›  MGOwen

突然出现“无法向会话状态服务器发出会话状态请求”

  •  5
  • MGOwen  · 技术社区  · 15 年前

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

    我有两个负载平衡配置的生产Web服务器。他们宿主的ASP.NET Web应用程序使用web.config中的这一行共享状态(如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\allowermoteconnection的值,确保它接受远程请求。如果服务器在本地计算机上,并且前面提到的注册表值不存在或设置为0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称。

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

    我“试着先转向AUF,然后转向ONNEGEN”——重启状态服务器解决了这个问题。

    为什么?

    我真的很想知道发生了什么,为什么我可以阻止它再次发生。

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

    1. 当时应用了Windows更新到.NET Framework 4 在状态服务器上 . 那么,也许更新对ASP.NET状态服务做了些什么?Windows事件查看器显示.NET 4在此前后记录了一条警告:

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

    2. prod网站和状态服务器之间的某种临时网络问题?不过,它们确实坐在同一个物理机架中,彼此紧挨着。

    3. ????还有其他想法吗?

    以前有人看到过这个吗,或者有人能纠正我的错误吗?

    3 回复  |  直到 10 年前
        1
  •  5
  •   3Dave    15 年前

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

    两个应用程序都出现错误的事实表明问题出在一个公共资源上。我们花了一周时间追踪了一个类似的问题,最终发现了一个有缺陷的光纤通道小工具。(这低于我的OSI级别,不确定细节)。

        2
  •  4
  •   Brian Webster Jason    13 年前
    1. 启动“管理工具”服务

    2. 右键单击ASP.NET状态服务,然后单击__Start__

    它工作得很好,我们需要遵循步骤

        3
  •  3
  •   meinmkv    15 年前

    在我们的基础设施团队试图潜入安装3.5的时候,他们忘记在我们的生产箱上安装它,以前也遇到过类似的问题。在框架更新后不跳转服务器只会导致各种奇怪的问题。

    推荐文章