2009-12-18 2 views
0

У меня есть HttpModule, что-то вроде этого:HttpModule AcquireRequestState обработчик события имеет пустой отправитель

public class MyModule : IHttpModule 
{ 
    public void Init(HttpApplication context) 
    { 
     context.AcquireRequestState += Context_OnAcquireRequestState; 
    } 

    private void Context_OnAcquireRequestState(object sender, EventArgs e) 
    { 
    HttpContext context = ((HttpApplication)sender).Context; 
     ... etc 
    } 
} 

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

Как это могло произойти?

+0

Я не уверен, что я буду заботиться о том, как это происходит, как я бы с этим справился, ala if (Sender! = Null) –

+0

Но мне нужен HttpModule для запуска - это важно! – cbp

ответ

1

HttpContext.Current должен быть установлен в потоке обработчика событий инфраструктурой. Попробуйте использовать статический аксессор вместо отправителя в событии.