none
Se pierde la variable de sesión de forma esporadica... RRS feed

  • Pregunta

  • Estimados,

    Tengo desarrollada una aplicación web ASP.NET (VB.NET) la cual esta alojada en un servidor externo (hosting), esta aplicación había estado funcionando de manera correcta y sin problemas grandes hasta hace un par de semanas donde, de repente, comenzó a perder las variables de sesión y se comenzaron a provocar errores en los procedimientos almacenados.

    Una de las variables de sesión es el "rut" y este gatilla varios SP que llegan grillas DevExpress.

    Ahora, no entiendo porque comenzó a fallar.

    Este es el código que utilizo en mi web.config

    <sessionState mode="InProc" timeout="3600" />
        <httpRuntime executionTimeout="3600" maxRequestLength="7340032" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
        <globalization culture="es-MX" uiCulture="es" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" />
        <customErrors mode="Off"></customErrors>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">

    Como ven, el web.config esta seteado con tiempo suficiente para que la sesión funcione todo el día (12 horas aprox.)

    Alguien tiene una idea de lo que pueda estar pasando???

    Agradecería cualquier ayuda que me pudieran brindar.

    Saludos,
    Gabriel 

    jueves, 14 de diciembre de 2017 0:07

Respuestas

  • En realidad eso es engañoso. Lo que configuras en el Pool en realidad no es el Framework (aunque eso sea lo que dice en pantalla), sino que se configura el CLR. La distinción es importante porque un mismo CLR vale para varios Frameworks. Por ejemplo, el CLR 2.0 vale para el Framework 2.0, 3.0 y 3.5.

    Y lo de "ASP.NET 4.0" tampoco es relevante. La versión que importa es la que se configura en las Propiedades del proyecto, donde hay un dropdown que deja seleccionar la versión del Framework para la que se compila esa aplicación. Seguramente te encontrarás que lo tienes configurado para 3.5, si es que funciona con el CLR 2.0 en el Pool.

    Pero en cualquier caso, nada de todo ello guarda relación con el Session, que se comporta igual en todas las versiones.

    jueves, 14 de diciembre de 2017 14:10

Todas las respuestas

  • Se puede perder el Session si la aplicación se resetea en el servidor por cualquier motivo. Esto puede ocurrir, por ejemplo, si se modifica el web.config con un editor. También se reinicia la aplicación si IIS detecta que se ha modificado un cierto número de ficheros por debajo de la raiz de la aplicación (por eso si tu aplicación graba ficheros en disco no debe de hacerlo por debajo de su propia carpeta en IIS). En un hosting, también puede ocurrir si la aplicación se mueve de un servidor a otro en una configuración de tipo "granja". También ocurre si el pool de la aplicación supera alguno de los valores que tenga configurados para el reciclado de la aplicación, tales como la memoria ocupada o el número de peticiones recibidas.
    jueves, 14 de diciembre de 2017 8:02
  • Muchas gracias por tu respuesta Alberto...

    Lo único anormal que he notado es que el AplicationPool de IIS esta seteado con el framework 2.0 y el de la aplicación es ASP.NET 4.0.... podrá ser un problema esto???

    Revisaré el resto de tus recomendaciones y te contaré como me fué.

    Saludos y gracias!!!

    jueves, 14 de diciembre de 2017 12:17
  • En realidad eso es engañoso. Lo que configuras en el Pool en realidad no es el Framework (aunque eso sea lo que dice en pantalla), sino que se configura el CLR. La distinción es importante porque un mismo CLR vale para varios Frameworks. Por ejemplo, el CLR 2.0 vale para el Framework 2.0, 3.0 y 3.5.

    Y lo de "ASP.NET 4.0" tampoco es relevante. La versión que importa es la que se configura en las Propiedades del proyecto, donde hay un dropdown que deja seleccionar la versión del Framework para la que se compila esa aplicación. Seguramente te encontrarás que lo tienes configurado para 3.5, si es que funciona con el CLR 2.0 en el Pool.

    Pero en cualquier caso, nada de todo ello guarda relación con el Session, que se comporta igual en todas las versiones.

    jueves, 14 de diciembre de 2017 14:10