我正在嘗試爲我的網站上的每個客戶端創建一個會話代碼。在全球ASAX的在session_start我有這樣的代碼:ASP.NET會話標識符
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不同)。
請我真的會對此有所幫助。
您是否有任何代碼可以根據您的請求實際訪問會話? – Restuta 2010-12-14 14:35:51
順便說一句,爲什麼你不這樣做? http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx – Restuta 2010-12-14 14:37:22
你到底想達到什麼目的?會話已經一個id:SessionID的... – 2010-12-14 14:37:51