@ JustinP8 да, вызов изображения не на 100% гарантированно запускает сеанс, но aspx вызывает его точно. Хитрость в вашем решении - это iframe.

я есть 2 приложения, работающие в одном домене. Поток идет так:

Приложение 1Приложение 1 ->Приложение 2Приложение 2 ->Приложение 1

Приложение 1 это WebForms (asp.net framework 2.0),Приложение 2 такое ASP.NET MVC 3 (фреймворк 4.0)

Пока пользователь включенПриложение 2Я хотел бы сохранить сеанс наПриложение 1.

Во время строительстваПриложение 1мы встроили обработчик «KeepSessionAlive.ashx», который просто выполняет Session («KeepSesssionAlive») = DateTime.Now () при запросе, как описано вэта статья, Мы сделали это, потому что это приложение для оценки, и во время некоторых сложных этапов теста пользователю может потребоваться много времени, прежде чем он выберет ответ. Вот код:

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

Затем я просто вызываю этот обработчик периодически в течениеApplication 1 используя jQuery:$.post("KeepSessionAlive.ashx", null, function() { });

Итак, я подумал, что мог бы вызвать тот же обработчик изПриложение 2 используя $ .ajax (), я даже изучил использование jsonp, но, похоже, это не работает. Я написал код для записи всех переменных сеанса из KeepSessionAlive.ashx в файл и даже для возврата чего-либо через ответ jsonp, и данные выглядели правильно.

Тем не менее, делая тест, в котором я задержался вПриложение 2 достаточно долго дляПриложение 1сеанс истекает, а затем пытается сделать переход отПриложение 1 ->Приложение 2когда я доберусь до страницы возврата вПриложение 1 Меня встретили сSystem.NullReferenceException: Object reference not set to an instance of an object. ошибка, потому что я пытаюсь сослаться на один из объектов в сеансе. Единственное значение в сеансе - Session (KeepSessionAlive). Я предполагаю, что это потому, что он создал новый сеанс, но если это так, то почему мои тесты, которые записывали значения сеанса, отображали всеПриложение 1переменные сессии?

Есть ли другие методы, которые я могу использовать, чтобы сохранитьПриложение 1Session жив, пока пользователь заполняет формы вПриложение 2?

Ответы на вопрос(1)

Ваш ответ на вопрос