sessionstate net mvc example aumentar asp asp.net asp.net-mvc machinekey sql-session-state

asp.net - net - sessionstate mode inproc



Perder Estado de SesiĆ³n con ASP.NET/Servidor SQL (3)

  1. Con el Administrador de IIS, verifique dos veces la configuración de la clave de su máquina en los niveles de raíz y de sitio web.
  1. Revise el modificador IsolateApps en el elemento clave de la máquina: http://msdn.microsoft.com/en-us/library/w8h3skw9%28v=vs.100%29.aspx

  2. ¿Has actualizado recientemente de 3.5 a 4.0?

  3. Último recurso: recicle las aplicaciones en ambas máquinas y reinicie IIS.

Tengo un flujo de trabajo MVC de ASP.NET configurado como dos sitios web administrados por un equilibrador de carga. Los sitios web utilizan Sql Server como el proveedor de estado de sesión y tienen desactivado el proceso de autenticación (no es necesario).

Ahora, esporádicamente, parece que estoy perdiendo el estado de la sesión, y creo que esto se debe a que la solicitud está siendo manejada por el servidor alternativo, por lo que esencialmente el usuario está saltando de un servidor a otro, dependiendo de cómo se ajuste el equilibrador de carga. No siempre estoy "perdiendo el estado de sesión" en la misma etapa del flujo de trabajo, por lo que creo que es algo relacionado con la configuración de la granja de servidores web + estado de sesión del servidor SQL.

Ambas aplicaciones utilizan la misma clave de máquina para cifrar y descifrar el estado de la sesión almacenada en el servidor SQL.

La configuración en ambos servidores es la siguiente:

<authentication mode="None" /> <sessionState mode="SQLServer" sqlConnectionString="{connection-string}" /> <machineKey decryptionKey="777CB456774AF02F7F1AC8570FAF31545B156354D9E2DAAD" validationKey="89B5B536D5D17B8FE6A53CBB3CA8B8695289BA3DF0B1370BC47D362D375CF91525DDB5307D8A288230DCD4B3931D23AED4E223955C45CFF2AF66BCC422EC7ECD" />

He confirmado que esto es idéntico en ambos servidores, ¿hay algo que me esté perdiendo?

Esto no ocurre en mi entorno de desarrollo cuando estoy usando un solo servidor.

Me temo que estoy sufriendo los blues de los viernes, y sin duda descubriré la respuesta la próxima semana, ¡lamentablemente no quiero esperar!

¿Algunas ideas?


Encontré el problema.

Cuando crea aplicaciones que espera compartir el estado de la sesión utilizando el Servidor SQL, necesitan la misma ID configurada en IIS. Esto se debe a que la ID de sesión que se genera se genera en función de la ID de la aplicación. (Internamente, la ID de la aplicación es algo así como LM / W3SVC / 1

Los dos servidores tenían diferentes ID para cada aplicación en IIS. La resolución es cambiar la ID en `Administrar sitio web -> Configuración avanzada ''en cada servidor.


Las sesiones tienen (web) ámbito de aplicación. A ver si esta MS KB ayuda.

Actualización: Interesante voto negativo. Quizás mi sugerencia necesite más claridad.

Además de coincidir con las claves de la máquina, también debe coincidir con la configuración de IIS para los sitios (por lo que es la "misma aplicación" (ruta de aplicación) en IIS.