No se puede realizar la solicitud de estado de la sesión al servidor de estado de la sesión

122

Nuestro sitio tiene actualmente este problema. Básicamente, solo sucede cuando hacemos clic en algunos enlaces en particular donde aparecerá una nueva ventana.
Este es el mensaje de error que recibimos:

No se puede realizar la solicitud de estado de la sesión al servidor de estado de la sesión.
Asegúrese de que se inicie el servicio ASP.NET State y de que los puertos del cliente y del servidor sean los mismos.
Si el servidor está en una máquina remota, asegúrese de que acepta solicitudes remotas verificando el valor de HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection.
Si el servidor está en la máquina local, y si el valor de registro mencionado anteriormente no existe o está establecido en 0, entonces la cadena de conexión del servidor estatal debe usar 'localhost' o '127.0.0.1' como el nombre del servidor.

sitio de destino :
MakeRequest vacío (StateProtocolVerb, System.String, StateProtocolExclusive, Int32, Int32, Int32, Byte [], Int32, Int32, SessionNDMakeRequestResults ByRef)

este es el webconfig que contiene la etiqueta sessionstate:

<sessionState mode="StateServer" timeout="45" />

He comprobado el servicio de estado de ASP.NET y actualmente está iniciado y configurado en automático

He configurado el registro indicado en el mensaje de error en 1, pero aún no funciona.

Liam
fuente

Respuestas:

305
  1. Inicio–> Herramientas administrativas -> Servicios
  2. Haga clic derecho en el servicio de estado de ASP.NET y haga clic en "iniciar"

Además, puede configurar el servicio en automático para que funcione después de un reinicio

Jamshid Hashimi
fuente
2
¡A veces descubrí que solo funciona después de reiniciar el servicio de estado de ASP.NET un par de veces!
Matthew Lock
2
Trabaja como un encanto para mí
Arun
1
El nombre exacto es aspnet_state.
AmiNadimi
1
Eres mi héroe ... lo estaba buscando durante tanto tiempo.
G43beli
1
me has ahorrado ... horas moviendo a todos ... y llegas con esta solución fácil ... de verdad ... gracias
Roger Tello
26

Si necesita cambiar HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection a 1, recuerde reiniciar el servicio de estado de ASP.net después de cambiar el parámetro.

hikkemikke
fuente
@hikkenmikke ¿Cómo se verifica y cambia HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection
Pomster
8

Mira esto:

stateConnectionString="tcpip=server:port"

es correcto. También verifique que el puerto predeterminado ( 42424) esté disponible y que su sistema no tenga un firewallque esté bloqueando el puerto en su sistema

mas_oz2k1
fuente
1
Tengo el mismo problema, verifiqué que mi servicio de estado de sesión se está ejecutando correctamente, pero sigo recibiendo el mismo mensaje. Aquí está mi configuración web.config: <sessionState mode = "StateServer" stateConnectionString = "tcpip = 127.0.0.1: 42424" sqlConnectionString = "data source = 127.0.0.1; Trusted_Connection = yes" cookieless = "false" timeout = "30" />
lstanczyk
5

Escriba Services.msc en el panel de ejecución de la ventana de ejecución de Windows. Enumerará todos los servicios de Windows en nuestro sistema. Ahora debemos iniciar el servicio Asp .net State como se muestra en la imagen.ingrese la descripción de la imagen aquí

Su problema se resolverá.

Rinoy Ashokan
fuente
Recibí este error después de reiniciar debido a Windows Update. Seguí estos pasos y funcionó. Gracias.
Mauricio Arias Olave hace
4

Uno de mis clientes se enfrentaba al mismo problema. Se toman los siguientes pasos para solucionar este problema.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

 (4) Right Click and Start it.
Hiren Parghi
fuente
2

Otra cosa que debe verificar es si tiene el Firewall de Windows habilitado, ya que podría estar bloqueando el puerto 42424.

jwanagel
fuente
2

Descubrí que algunos desarrolladores, por alguna razón, definirán la IP privada del servidor fuera de IIS en una ubicación inesperada, como un archivo de configuración no estándar (es decir, no web.config) o un archivo de texto. Esto puede hacer que la operación interna falle incluso cuando se inicia el servicio, los puertos no están bloqueados, las claves de registro son correctas, etc.

Kaseya, en particular, coloca un archivo llamado serveripinternal.txt en el directorio raíz de IIS del servidor VSA. He visto el texto de su error cuando alguien que ejecuta su propia instancia de Kaseya cambió la IP interna del servidor. Se podrá acceder al servidor, IIS responderá y aparecerá la página de inicio de sesión, pero el inicio de sesión fallará con el mensaje citado.

Poni de una nota
fuente
1

Tuve el mismo problema cuando alguna instalación de ASP.NET estaba dañada. En ese caso, sugieren ejecutar aspnet_regiis -i -enable

Matthew Lock
fuente
en la versión correcta de asp.net. En mi caso fue 2
Ricardo Appleton
0

Recientemente me encontré con este problema y ninguna de las soluciones propuestas lo solucionó. El problema resultó ser un uso excesivo de los conjuntos de datos almacenados en la sesión. Hubo una falla en el código que dio como resultado que el tamaño de la sesión aumentara 10 veces.

Hay un artículo en el blog de msdn que también habla de esto. http://blogs.msdn.com/b/johan/archive/2006/11/20/sessionstate-performance.aspx

Usé una función para escribir mensajes de seguimiento personalizados para medir el tamaño de los datos de la sesión en el sitio en vivo.

Ahmed Mansour
fuente
0

No es la mejor respuesta, pero de todos modos es una opción:

Comente la línea dada en web.config.

Marco Aurelio Fernandez Reyes
fuente