Mantener viva la sesión de una aplicación ASP.NET relacionada desde otra aplicación ASP.NET

Tengo 2 aplicaciones ejecutándose en el mismo dominio. El flujo es así:

Aplicación 1 Aplicación 1 -> Aplicación 2 Aplicación 2 -> Aplicación 1

Aplicación 1 es WebForms (asp.net framework 2.0), Aplicación 2 es ASP.NET MVC 3 (framework 4.0)

Mientras el usuario está en Aplicación 2, Me gustaría mantener viva la sesión en Aplicación 1.

Mientras construye Aplicación 1, creamos un controlador "KeepSessionAlive.ashx" que simplemente hace Session ("KeepSesssionAlive") = DateTime.Now () cuando se solicita, como se describe enEste artícul. Hicimos esto porque esta es una aplicación de evaluación y durante algunas de las partes más difíciles de la prueba, un usuario puede necesitar mucho tiempo antes de elegir una respuesta. Aquí está el código:

Public Class KeepSessionAlive : Implements IHttpHandler, IRequiresSessionState  

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Session("KeepSessionAlive") = DateTime.Now                           
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property   

End Class

Entonces, simplemente llamo a este controlador periódicamente dentro deApplication 1 usando jQuery:$.post("KeepSessionAlive.ashx", null, function() { });

Entonces, pensé que podría llamar a ese mismo controlador desde Aplicación 2 usando $ .ajax (), incluso busqué usar jsonp, pero esto no parece estar funcionando. Escribí código para registrar todas las variables de sesión de KeepSessionAlive.ashx en un archivo, e incluso para devolver cosas a través de la respuesta jsonp, y los datos se veían bien.

Sin embargo, haciendo una prueba en la que me demoré en Aplicación 2 lo suficiente para Aplicación 1a sesión de @ expira y luego intenta hacer la transición desde Aplicación 1 -> Aplicación 2, cuando llego a la página de retorno en Aplicación 1 Me saludan con unaSystem.NullReferenceException: Object reference not set to an instance of an object. error porque estoy tratando de hacer referencia a uno de los objetos en la sesión. El único valor en la sesión es Session ("KeepSessionAlive"). Supongo que esto se debe a que creó una nueva sesión, pero si ese es el caso, ¿por qué mis pruebas que registraron los valores de la sesión muestran todos Aplicación 1 variables de sesión de @?

¿Hay algún otro método que pueda usar para mantener Aplicación 1a sesión de @ está viva mientras el usuario completa los formularios en Aplicación 2?

Respuestas a la pregunta(1)

Su respuesta a la pregunta