我有一个使用MVC 2构建的站点。我的问题是Response.End()会在第一次访问会话时导致会话丢失。
测试案例1:
启动该应用程序。
转到Home / X.项目已添加到session
,并且会调用Response.End()
。
再次打开Home / X并检查Session["X"]
(在分配行之前添加断点。)返回 null。执行分配“X”的其余操作“再次参加会议。
重新开启Home / X.这一次Session["X"]
会返回正确的值。
测试案例2:
保持Web应用程序正常运行。关闭浏览器并重新打开以打开新会话。访问Home / X。
结果:Session["X"]
始终有值。
有人可以向我解释为什么会发生这种情况以及如何解决这个问题?
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public void X()
{
Session["X"] = "X";
Response.End();
}
}
答案 0 :(得分:1)
添加
public void Session_OnStart()
{
}
到Global.asax有助于解决问题。