2013-02-24 2 views
1

Я недавно интегрировал все свои проверки сессии в global.asax, который отлично работает, но поскольку я поместил его там, когда мои страницы вызывали мой файлhandler.ashx для получения изображений Я продолжаю получать нулевые ссылочные ошибки для сеанса (но только когда он вызывает это).Session Check in global.asax messing с filehandler.ashx

Если я поставил попытку/поймать его, изображения загрузятся, но, очевидно, это нехорошее решение.

void Application_PostAcquireRequestState(object sender, EventArgs e) 
    { 
     try 
     { 
      HttpContext context = HttpContext.Current; 
      if (context.Session["tid"] == null) //Null Reference here 
      { 

В идеале, я ищу для события, пожары на постбэка или при первой загрузке, не винт с filehandler. Я думаю, если я не могу, я всегда могу поместить его в init_page-init, как раньше (это плохая практика?), Потому что это, казалось, отлично работает. Я просто подумал, что global.asax будет более простым решением.

Любые мысли о том, что попробовать дальше?

События я пытался до сих пор ..

Application_AcquireRequestState 

Application_PostAcquireRequestState 

Application_PreRequestHandlerExecute 

Application_PreSendRequestContent 

ответ

4

ASHX требует состояние сеанса наследуется явно:

public class SomeCustomService : IHttpHandler, IRequiresSessionState 
{ 
    // stuff 
} 
+0

Ого, только что видел это, я буду тестировать его сегодня вечером и дать обновление .. все еще смотрел на решение этой благодарности. –

+0

Проверка назад. После немного большего количества исследований я действительно пошел с внедрением IReadOnlySessionState, но это тоже помогло, и я уверен, что получил правильный путь и все хорошо работает в global.asax. Большое спасибо :) –