【发布时间】:2010-12-14 14:31:44
【问题描述】:
我正在尝试为我网站上的每个客户制作会话代码。在全局 asax 的 Session_Start 中,我有以下代码:
private static long codSesion = 0;
private static object codSesionLocker = new object();
protected void Session_Start(object sender, EventArgs e)
{
if (Session["CodSesion"] == null)
{
lock (codSesionLocker)
{
if (Session["CodSesion"] == null)
{
if (codSesion == 9999)
codSesion = 0;
codSesion++;
Session["CodSesion"] = codSesion;
}
}
}
}
当我监控它时,它似乎很完美。一段时间不活动后开始出现问题。发生的一件事是太多次从 1 重新开始(没有达到 9999 并且没有 IIS 重新路由)。最近,甚至比 taht 更糟糕:我使用了代码 1 和 2。我停止使用服务器(让 IIS 没有活动)。将近 1 小时(50 分钟)后,我再次尝试。 IIS 给我的代码是 2(在与上一个代码 2 不同的 PC 中)。
请在这方面提供任何帮助。
【问题讨论】:
-
您是否有任何代码可以根据您的请求实际访问会话?
-
顺便说一句,你为什么不同意这个? msdn.microsoft.com/en-us/library/…
-
你想达到什么目的?会话已经有一个 id:SessionID...
-
@Restuta, @Yves M. - SessonID 并不像我希望的那样简单易读。
-
但它有效 =) 谁需要 Session ID 的可读性?
标签: asp.net session global-asax