La Red de Conocimientos Pedagógicos - Currículum vitae - Solución Asp.Net para manejar fallas de sesión

Solución Asp.Net para manejar fallas de sesión

Compruebe si la sesión ASP NET ha caducado y si se ha agotado el tiempo de espera. El método de configuración predeterminado es Session TimeOut=; o puede configurarlo en un valor mayor. La unidad es minutos, depende del valor. situación

Compruebe si el código tiene Session Abandon() o similar. Una vez que se llama al método Abandon, la sesión actual ya no es válida y se iniciará una nueva sesión

ASP. NET utiliza la base de datos ACCESS y la base de datos se coloca en el directorio bin. La solución es no colocar los archivos actualizados en el directorio BIN

Solo pasando de la misma página a otra se puede continuar con la misma sesión. Es decir, la sesión no puede ser entre dominios y el cliente cierra el navegador o una sesión al mismo tiempo. Cuando cierra la página de navegación, la sesión desaparece cuando vuelve a visitarla. pero aún sobrevivirá en el servidor. No se llamará después de esperar el tiempo de espera. Además, por ejemplo, establezca una SESIÓN en la primera página y luego REDIRECT a la segunda página. La solución es establecer endResponse en FALSE en REDIRECT.

La razón por la que Iframe pierde la sesión es que el cliente y el servidor tienen la misma autenticación. El identificador de almacenamiento del cliente se adjunta al encabezado de la página y se envía al servidor para su identificación. obtener los derechos de operación de sesión correspondientes

Sin embargo, si la página proviene de un marco y la página principal del marco y el marco no son el mismo sitio, el cliente de forma predeterminada prohibir agregar encabezados a la página. De esta manera, el servidor no puede reconocer la página en el marco del cliente y no puede operar la sesión. Solución: respuesta AddHeader (P P CP=CAO PSA OUR) o iniciar el servicio de estado en el servicio de ventana. p>

Algunos antivirus El software escaneará su archivo Web Config y la sesión definitivamente se perderá en ese momento. Esta es la solución según Microsoft: haga que el software antivirus bloquee el escaneo del archivo Web Config (. y no lo edite usted mismo mientras el programa se está ejecutando)

Razones y soluciones de ASP para la pérdida inexplicable de sesión bajo la configuración predeterminada de NET

Bajo funcionamiento normal, la sesión se perderá durante no hay motivo porque el programa está constantemente ***. Esto elimina la posibilidad de que se agote el tiempo de espera de la sesión y el tiempo de espera de la sesión está establecido. Nunca expirará tan rápido

Ahora escribiré los motivos y las soluciones. /p>

La razón por la cual falla la sesión ASP NET

Porque el programa es el predeterminado Configure todas las configuraciones de la sesión en el archivo de configuración web de la siguiente manera

sqlConnectionString= data source= ;Trusted_Connection=yescookieless= true

Timeout= />

Encontraremos que hay un modo de atributo en la etiqueta sessionState puede tener un valor de InProc StateServer? SQLServer (distingue entre mayúsculas y minúsculas). El valor predeterminado es InProc, lo que significa que la sesión se guarda en proceso (IIS es aspnet_wp exe y IIS es W wp exe). es inestable Cuando ocurren ciertos eventos, el proceso se reiniciará, provocando que se pierda la sesión almacenada en el proceso

¿En qué circunstancias se debe hacer esto? Un artículo de Microsoft nos lo dijo

<

p> El atributo MemoryLimit de la etiqueta ProcessModel en el archivo de configuración

Se cambia el archivo global asax o nfig

Se modifica el programa web (DLL) en la carpeta Bin

El software antivirus escaneó un archivo nfig

Para obtener más información, consulte PRB: Las variables de sesión se pierden de forma intermitente en las aplicaciones

Soluciones para fallas de sesión de ASP NET

El atributo de modo en la etiqueta sessionState mencionada anteriormente puede tener tres valores Además de InProc, también puede ser StateServer SQLServer. Estos dos métodos para guardar la sesión están fuera de proceso, por lo que cuando aspnet_wp exe es. reiniciado, no afectará la sesión

Ahora configure el modo en StateServer. StateServer es un servicio de esta máquina. Puede ver el servicio llamado State Service en el servicio del sistema. predeterminado Después de configurar el modo en StateServer, inicie el servicio manualmente

De esta manera, podemos usar el StateService local para almacenar la sesión. A menos que la computadora se reinicie o el StateService falle, la sesión se bloqueará. no se pierda (es normal que la sesión se descarte debido al tiempo de espera)

Además, también podemos guardar la sesión a través del StateService de otras computadoras. Las modificaciones específicas también son así. a stateConnectionString= tcpip= en la etiqueta sessionState: Hay una dirección IP en el atributo que de forma predeterminada es la máquina local ( ). Puede cambiarla a la dirección IP de la computadora que sabe que está ejecutando el servicio StateService. programas en diferentes computadoras para comunicarse entre sí.

Si tiene requisitos más altos y necesita proporcionar servicios durante el período de servicio, la sesión no se perderá al reiniciar. Puede considerar configurar el modo en SQLServer. También debe modificar el atributo sqlConnectionString. Con respecto a la operación de guardar la sesión usando SQLServer, cuando se usa StateServer o SQLServer para almacenar la sesión, todos los objetos que deben guardarse en la sesión excepto el tipo de datos básico (tipo de datos predeterminado) Tales. como cadena int, etc.) debe serializarse. Simplemente coloque la etiqueta [Serializable] delante de la clase que se va a serializar

Por ejemplo:

[Serializable]

clase pública MiClase

{

lishixinzhi/Article/program/net/201311/12478