这个错误消息的奇怪之处在于我的web.config中的会话状态被设置为InProc,IIS7配置也显示它.
我正在运行一个经典的Web表单站点,只有一个小部分,我正在转移到MVC 1.0.现在我的常规网络表单default.aspx页面无法启动!
>我根本没有在MVC中使用TempData提供程序,所以我猜测框架确实出于某种原因但是,我的SesionState已启用…
>我的测试环境在集成模式的IIS 7上运行,我的webconfig使用sessionstate作为InProc并且工作正常.
更多信息:为了好玩,我创建了一个只有MVC的存根项目,并将其部署到测试环境,它工作正常! web.config基本上是相同的,一个工作,另一个不工作.
任何帮助表示赞赏.
错误信息
‘/’应用程序中的服务器错误.
SessionStateTempDataProvider要求启用SessionState.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.InvalidOperationException:SessionStateTempDataProvider要求启用SessionState.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[InvalidOperationException:SessionStateTempDataProvider要求启用SessionState.]
System.Web.Mvc.SessionStateTempDataProvider.LoadTempData(ControllerContext controllerContext)247928
System.Web.Mvc.TempDataDictionary.Load(ControllerContext controllerContext,ITempDataProvider tempDataProvider)30
System.Web.Mvc.Controller.ExecuteCore()71
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)209
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()599
System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)171
解决方法
< modules runAllManagedModulesForAllRequests =“true”>
看起来我并不孤单:
http://forums.asp.net/p/1293974/2509190.aspx
http://www.flyvergrillen.dk/2009/03/26/being-trapped-in-iis/
我认为我的纯MVC项目(在Test环境中工作)过于简单,可能没有强制MVC框架要求TempData和SessionState,所以我将如何解释它;-)