2009-12-18 73 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 
    } 
} 

我已經注意到了應用程序池後直接發生的問題重新啓動,其中null被作爲發件人通過AcquireRequestState事件的參數,我得到一個空引用異常。 經過一段時間後,問題似乎自行解決。

這怎麼會發生?

+0

我不太確定我會關心它是如何發生的,因爲我只是處理它,ala if(Sender!= null) – 2009-12-18 01:54:26

+0

但是我需要HttpModule來運行 - 這很重要! – cbp 2009-12-18 12:06:40

回答

1

HttpContext.Current應由基礎結構在事件處理程序線程上設置。嘗試使用靜態訪問器而不是事件中的發件人。