【发布时间】:2025-11-30 05:20:02
【问题描述】:
我有一个 ASP.NET MVC 应用程序,它发布在 2 个 IIS Web 服务器上(一个用于debug,一个用于release)。
在这个应用程序中,我使用 Session 变量来保持用户登录,但是在 release 服务器中,这个 Session 定义不起作用,返回错误:
对象引用未设置为对象的实例
我相信它只能是 IIS 配置,因为相同的代码在 debug 服务器和 localhost 上都可以正常工作,这就是我无法调试应用程序的原因。
我以前从未进行过 IIS 配置,但在搜索它时,我发现有一个 Sessions State 配置(请参阅此链接 here),默认设置为 true ,如果我尝试设置false,则不会发生任何不同。
代码如下:
// POST: Auth/Login/{login}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(DTOViewModel login)
{
try
{
this.Autenticar(login.Usuario, login.Password);
Session["user"] = login.Usuario; // <---- Here is the problem
return Json(new { url = Url.Action("Index", "User/Home") });
}
catch (Exception ex)
{
return Json(new { erro = ex.Message });
}
}
【问题讨论】:
-
那么,您是否根据参考链接更改了 IIS 上的任何设置?
-
我试过了,但没有任何改变
-
你确定登录变量有数据吗?
标签: asp.net-mvc session iis