2010-09-22 121 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