【发布时间】:2015-09-30 04:44:08
【问题描述】:
我有一个 ASP.NET MVC 应用程序,它具有每个用户的设置,包括当前的文化设置。我们应该在HttpApplication 的Application_AcquireRequestState 或Application_PostAcquireRequestState 事件中设置Thread.CurrentThread.CurrentCulture。
我想在会话状态字典中维护用户的设置,但是在我观察到的 Application_AcquireRequestState 方法中:
HttpContext.Current.Session == null- QuickWatch 窗口报告
this.Session:((System.Web.HttpApplication)(this)).Session'抛出'System.Web.HttpException' System.Web.SessionState.HttpSessionState {System.Web.HttpException}类型的异常 “会话状态在此上下文中不可用。”
有趣的是,HttpContext.Current._sessionStateModule == null 是真的,尽管我的 web.config 文件中有 <sessionState mode="InProc" />。
为什么 Session 不可用?
【问题讨论】:
-
这不是答案,而是观察结果:我注意到这种情况发生在两种情况下:在 Visual Studio 2008 和 IIS 7.5 中使用“Cassini”网络服务器时的所有请求,但仅当对非 ASP.NET 资源(如静态文件)发出请求时,
runManagedModulesForAllRequests="true".