在调查another problem时,我遇到了一个特殊情况。
在Global.asax方法中,我具有以下代码:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
if (!(Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState)) // No session - no validation.
return;
DoSomething();
}
DoSomething()
方法调用将引发NullReferenceException
,它很简单,它唯一可以做的就是HttpContext.Current.Session
为null。怎么会这样?
最佳答案
那时HttpContext.Current.Session
可能为空。该事件在获取会话的时间点触发,无法保证在这一点上已经获取了该事件。您可能会钩住此事件的一个原因是,您正在提供一个自定义模块来实现自己的Session对象。这样的定制模块将在此处设置会话。
如果要使用Session对象,则应使用PostAquireRequestState
事件。
关于asp.net - 尽管有IRequireSessionState/IReadOnlySessionState处理程序,但ASP.NET session 为NULL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1588299/