IIS 7.0 no mantiene las variables de sesión

IIS 7.0 no mantiene las variables de sesión

Si alojo una página ASP.NET con:

<%@ Page Language="C#" %>

<!DOCTYPE html>    
<script runat="server">

    protected void btn_Click(object sender, EventArgs e)
    {
        lbl.Text = HttpContext.Current.Session["a"] == null ? 
                       "null" : 
                       HttpContext.Current.Session["a"].ToString();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            HttpContext.Current.Session["a"] = "A";
            lbl.Text = "assigned Session Variable";
        }
    }
</script>

<html>
<head>
    <title>Testing Sessions</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btn" runat="server" Text="reload" OnClick="btn_Click" />
        <hr />
        <asp:Label ID="lbl" runat="server" />
    </div>
    </form>
</body>
</html>

en la primera ejecución obtengo el assigned Session Variabletexto, pero al hacer clic en el objeto Sesión siempre aparecenull

¿Existe alguna opción que deba activar/desactivar para usar las variables de sesión normales?

funciona bien en IIS 6.0 y Cassini (bajo VS 2008 y 2010).

Estoy empezando a quedarme sin ideas de lo que está pasando :o(

¡Cualquier ayuda es muy apreciada!


el proceso de la página de ejemplo anterior

texto alternativo

texto alternativo


Más pruebasmuestra que esto sólo sucede en IE (es decir, 8 en este caso), Firefox, Safari, Opera, Chrome, todos dan la "respuesta" correcta

texto alternativo


Compruebe eltransmisión de pantalla de la situación

Respuesta1

Debes cambiar tu url par_2008_64 en par200864 porque en el explorador el guión bajo no funciona y la sesión se vuelve nula

Respuesta2

El estado de sesión tradicional requiere que las cookies estén habilitadas para el sitio en cuestión. ¿Es posible que Internet Explorer esté configurado para bloquear las cookies provenientes del servidor y que los otros navegadores no estén configurados de esa manera? Eso explicaría la diferencia de comportamiento. Deberías poder utilizar Fiddler (cf.http://www.fiddler2.com/fiddler2/) para observar el tráfico HTTP entre IE y el servidor, y ver si IE está enviando la cookie de regreso al servidor. Sospecho firmemente que la respuesta es "no".

Potencialmente, puede configurar sesiones sin cookies (p. ej.http://msdn.microsoft.com/en-us/library/ms972429.aspx) en su archivo web.config para confirmar esto también; Si funciona sin cookies, ahí lo tienes.

Respuesta3

Si alguien encuentra este "error", haga algo sencillo para resolverlo.

  • eliminar la aplicación virtual
  • crear una nueva aplicación virtual (puede tener el mismo nombre que antes)

Respuesta4

Tuve el mismo problema con un cliente. Quitar y agregar la aplicación no resolverá el problema en este caso. El truco es: ¡reemplace o elimine el guión bajo en la URL!

información relacionada