对于每个请求,ASP.NET会话都是新增的,除非您写下了一些内容

问题描述:

我需要唯一的会话标识,但每个标识都是新的,除非您在其中写入内容。 该修补程序在页面加载方法中看起来像这样的Session["stubkey"] = "fsdufhusd"。 这对我来说很奇怪。有没有什么办法可以初始化会话,或者我可能会在配置上做错误的事情?对于每个请求,ASP.NET会话都是新增的,除非您写下了一些内容

在此先感谢。

SessionID文档建议同样的工作,你身边正在使用:

当使用基于cookie的会话状态, ASP.NET不为 会话数据分配存储,直到Session对象 是用过的。结果,为每个页面请求 生成新的会话ID ,直到访问会话对象。 如果应用程序需要在整个会话静态 会话ID,您 可以实现在 Session对象在应用程序的 Global.asax文件,并存储数据在session_start 方法来解决会话ID, 或者你可以使用 您的应用程序的另一部分中的代码来显式将 数据存储在Session对象中。

您不需要在page_load上初始化会话。您可以像这样初始化Global.asax上的会话

protected void Session_Start(Object sender, EventArgs e) 
{ 
    Session["init"] = 0; 
}