要让会话在MVC5中运行,您需要做什么?在MVC4中,我可以创建一个新项目并添加
Session["TEST"] = "worked";
到控制器,它没有任何问题。如果我在MVC5项目中这样做,它在Visual Studio 2012中工作正常,但是当我将它部署到IIS时,我得到了一个 “System.NullReferenceException”异常。
更新信息:
我在VS 2012中运行MVC5没有问题。我安装了所有更新以使其正常工作,除会话外一切正常。我不认为MVC5是问题,我认为这与项目模板有所不同,与MVC4模板不同。
这是导致问题的我的控制器操作:
public ActionResult Index()
{
ViewBag.Message = "Modify this template.";
Session["TEST"] = "worked";
return View();
}
潜在的解决方法:
将 runAllManagedModulesForAllRequests =“true”添加到我的web.config可修复此问题。
<modules runAllManagedModulesForAllRequests="true">
我也可以在这里做建议的答案:
Asp.net MVC error with configured managed modules
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" />
这也解决了我的问题。任何人都可以提供一些关于哪一个是更好的解决方案的原因以及为什么?
答案 0 :(得分:2)
Visual Studio 2012不支持MVC 5直接转发。
您需要为MVC 5安装 ASP.NET and Web Tools 2013.1 for Visual Studio 2012 才能在VS 2012中工作,它已添加对 ASP.NET MVC 5和Web API 2模板的支持对于2012年。
除此之外,我不认为&#34; Session["TEST"] = "worked";
没有工作&#34;必须对MVC 5做任何事情。
如果要将MVC4应用程序升级到MVC5,请执行以下操作: