0

我有一个配置为使用 Web Garden 运行的 ASP.NET MVC 应用程序。会话状态模式在 web.config 中设置为 StateServer,使用如下:

<system.web>
  <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="360" />
</system.web>

ASP.NET 状态服务在同一台机器(不是远程机器)上运行,因此上面的 ip 在端口 42424 上设置为 127.0.0.1。它被配置为自动并且它始终在运行。

应用程序池的最大工作进程设置为 4。

我经常在事件日志中收到很多关于状态服务器的警告消息。在错误下方(事件 ID 1310):

Event code: 3009 
Event message: No se pudo realizar la solicitud al servidor de estado de la sesión. Detalles: última fase='Leyendo respuesta del servidor de estado', código de error=0x8007000E, tamaño de datos salientes=0 
Event time: 05/11/2020 16:22:45 
Event time (UTC): 05/11/2020 15:22:45 
Event ID: 2e332c8f5171461e9a635a55ead92129 
Event sequence: 24813 
Event occurrence: 40 
Event detail code: 50016 
 
Application information: 
    Application domain: /LM/W3SVC/2/ROOT-2-132490528848804756 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: C:\inetpub\wwwroot\MyMvcApp\ 
    Machine name: MyServer
 
Process information: 
    Process ID: 4816 
    Process name: w3wp.exe 
    Account name: MyDomain\MyAppPoolIdentityAccount
 
Exception information: 
    Exception type: HttpException 
    Exception message: No se puede realizar una solicitud de estado de sesión al servidor de estado de sesión. Compruebe que el servicio de estado ASP.NET se ha iniciado y que los puertos de cliente y servidor son los mismos. Si el servidor se encuentra en un equipo remoto, compruebe el valor de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection para asegurarse de que acepta más solicitudes. Si el servidor se encuentra en el equipo local y si el mencionado valor del registro no existe o está establecido en 0, la cadena de conexión del servidor de estado debe utilizar 'localhost' o '127.0.0.1' como nombre de servidor.

    TRANSLATED TO ENGLISH:
Unable to make the session state request to the session state server.
Please ensure that the ASP.NET State service is started and that the client and server ports are the same. If the server is on a remote machine, please ensure that it accepts remote requests by checking the value of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection.
If the server is on the local machine, and if the before mentioned registry value does not exist or is set to 0, then the state server connection string must use either 'localhost' or '127.0.0.1' as the server name.
 
Request information: 
    Request URL: http://my.mvcapp.com/Wizard/MakeOrder
    Request path: /Wizard/MakeOrder
    User host address: 172.28.X.XX 
    User: MyDomain\OneUser 
    Is authenticated: True 
    Authentication Type: Negotiate 
    Thread account name: MyDomain\MyAppPoolIdentityAccount 
 
Thread information: 
    Thread ID: 67 
    Thread account name: MyDomain\MyAppPoolIdentityAccount 
    Is impersonating: False 
    Stack trace: 
 
 
Custom event details: 

我已确保 ASP.NET State 服务已启动并正在运行,并且客户端和服务器端口是正确的,分别为 127.0.0.1 和 42424。我还有注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection。该键存在并且设置为 0,因为 ASP.NET State 服务在同一台机器上运行(无需将其设置为 1)。

所以,我不明白为什么要检查状态服务器.....有什么想法吗?我花了很多天谷歌搜索,但我无法解决这个问题。

4

0 回答 0