在玩弄global.asax.cs
文件时,我在其中附加了一些代码
protected void Session_Start(object sender, EventArgs e)
{
}
然后开始注意到Session_Start
在使用 chrome 时每次请求都会调用它。使用 firefox 时,情况并非如此,它只被调用一次。这可能是什么原因造成的?
需要注意的是,这仅在我的开发机器上。我编译并运行代码,打开 Firefox,浏览http://localhost:63893/
并点击Session_Start
. 在Firefox中浏览时,它只点击Session_Start
一次。
当我打开 chrome 并浏览到http://localhost:63893/
它时,点击Session_Start
. 然后我输入我的登录数据并点击登录,它再次点击,Session_Start
然后在加载下一页的获取请求时再次点击。我用计数器查看,实际上在那段时间创建了 3 个独特的会话。Session_Start
我知道有一些消息来源指出,当没有值存储在会话中时,会话被放弃。这对我来说是一个很好的解释,但事实并非如此。我用两种方法反驳了这一点。
方法一:
protected void Session_End(){} /*breakpoint*/
从未解雇,我可以确认旧会话仍然存在。
方法二:
使用Session["KeepAlive"] = true;
inside ofSession_Start
来查看是否会阻止_Start
被调用,但它没有。_End
仍然没有被调用。
两者之间有什么不同或我做错了什么?