2010-09-22 120 views
6

我嘗試了一些代碼Application_Error這樣要檢查會話是否可用

Session["mysession"] = "Some message"; 

但問題是有時會不Application_Error可用。所以我想檢查會話是否可用。

回答

15

Session並不總是存在於當前的Application_Error的上下文中。請嘗試以下操作:

protected void Application_Error(object sender, EventArgs e) 
{ 
    if (Context.Handler is IRequiresSessionState || 
     Context.Handler is IReadOnlySessionState) 
    { 
     // Session exists 
     Session["mysession"] = "Some message"; 
    } 
} 
+0

這會給出例外「會話狀態在此上下文中不可用」。如果會話不可用。 – 2010-09-22 13:32:14

+0

真的嗎?你試過了嗎? – GenericTypeTea 2010-09-22 13:33:58

+0

是的,我做到了。現在我懷疑這可能與Application_Error – 2010-09-22 13:35:55