Pregunta

Parece que compilationMode = Nunca no permite Sesiones para el cableado eléctrico adecuado.

En primer lugar, se queja de que el EnbaleSessionState Directiva no está permitido en esta página.

explícitamente la asignación de la System.Web.SessionState.IRequiresSessionState a la página [1] evita las excepciones de referencia nula (en torno al acceso .session), pero aún no persistir o sesiones de alambre correctamente.

¿Alguien ha utilizado con éxito ASP.NET Sesiones con compilationMode = Nunca ?

Conceptualmente, ¿por qué debería ser disjuntos éstos ??

[1] - http://msdn.microsoft.com/en- es / library / system.web.ui.compilationmode.aspx

¿Fue útil?

Solución

No sé la situación exacta estás presente pero lo que dices es correcto - Página + = IRequiresSessionState sesión disponible. Aquí está lo que haces. En primer lugar definir una clase base para sus páginas que recibirá el estado de sesión:

public class BasePage : Page, IRequiresSessionState
{
}

A continuación, en su página NoCompile lo hace la siguiente declaración:

<%@ Page Language="C#" CompilationMode="Never" Inherits="BasePage" %>

Funciona como se esperaba. El estado de sesión está disponible. Ahora poco más acerca de su segunda pregunta: "Conceptualmente, ¿por qué deberían ser éstos ?? disjuntos". Por defecto de la página

public class Page : TemplateControl, IHttpHandler
{
}

clase no aplicar IRequiresSessionState y por lo tanto no tienen ningún estado de la sesión. ASP.NET lo hace por usted está compilando una clase para que en tiempo de ejecución mediante el cual provee la sesión - es decir, si defino una página llamada Default.aspx, con el código detrás de la clase que implementa la página, en ningún implemento de manera explícita IRequiresSessionState . Sin embargo, ASP.NET compila nuestro Default.aspx interfaz de usuario en una clase llamada:

public class default_aspx : Default, IRequiresSessionState, IHttpHandler
{
}

Ahora que dice explícitamente que quiere el estado de sesión que se entregarán. Esto se debe a " EnbaleSessionState " en el Directiva @Page es de forma predeterminada se establece en True. Ahora, cuando usted dice que default.aspx es una unidad de compilación no especificando CompilationMode="Never", entonces esta clase no se genera y que nunca obtener el estado de sesión, lo que hace que el uso de " EnbaleSessionState " no es significativo y por lo tanto personas con discapacidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top