gpt4 book ai didi

asp.net-mvc-4 - 一旦部署到 IIS 7 (W 2008 R2),ASP.NET MVC 4 web 应用程序中的 Session 对象就为 null

转载 作者:行者123 更新时间:2023-12-03 18:09:26 26 4
gpt4 key购买 nike

我开发了一个 ASP.NET MVC 4 web 应用程序 (.net 4.5),它在 Visual Studio 2012 中运行良好。在 Windows Server 2008 R2 上部署到 IIS 7 后,我的 Controller 中的 HttpContext.Session 对象似乎为空。我创建了一个简单的测试 ASP.NET MVC 4 应用程序来演示这个问题。

在我的测试应用程序中,我有一个简单的 Home Controller

public class HomeController : Controller
{
public ActionResult Index()
{
if ( HttpContext != null && HttpContext.Session != null )
{
HttpContext.Session[ "test" ] = "a string in session state";
ViewBag.Info = HttpContext.Session[ "test" ];
return View();
}
else
{
if ( HttpContext == null )
{
ViewBag.Info = "beeeeuuuuu - HttpContext = null!!!";
}
else if ( HttpContext.Session == null )
{
ViewBag.Info = "beeeeuuuuu - Session = null!!!";
}
return View();
}

}
}

我的 Index.chtml View 看起来像这样:
@{
ViewBag.Title = "Index";
}

<h2>Index</h2>
This is a simple test
<p>@ViewBag.Info</p>

因此,当我运行该应用程序时,我得到了预期的结果:
Index
This is a simple test
a string in session state

但是在我将应用程序部署到 Web 服务器后,网站给了我以下页面,表明 Session 对象为空:
Index
This is a simple test
beeeeuuuuu - Session = null!!!

Web 应用程序部署到在 ASP.NET v4.0 应用程序池(集成管道)下运行的默认网站。

我已经使用 aspnet_regiis -ir 在服务器上重新安装了 ASP.NET 但这没有帮助。 session 状态在 ISS 服务器上启用(In Proc)。我希望任何人都可以在这里帮助我,因为我试图解决这个问题已经有一段时间了。

非常感谢和亲切的问候。

更新:我还使用 .NET 4.0 而不是 4.5 测试了一个 ASP.NET MVC 4 版本,它有同样的问题。我还部署了一个 ASP.NET 网页应用程序 (.NET 4.0) 并且工作正常(HttpContext.Current.Session 在后面的代码中不为空)。

更新 II:我还尝试将 session 状态存储在数据库中,这在我的开发机器上运行良好,但在生产服务器上有同样的问题(HttpContext.Session 仍然返回 null)。

最佳答案

我找到了解决方案。您必须添加和删除 SessionStateModule:

  <configuration>
...
<system.webServer>
...
<modules>
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
...
</modules>
</system.webServer>
</configuration>

我不知道为什么 Microsoft 不将它添加到项目模板的 web.config 中?

关于asp.net-mvc-4 - 一旦部署到 IIS 7 (W 2008 R2),ASP.NET MVC 4 web 应用程序中的 Session 对象就为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com