[英]ASP.Net session start and end issue
我使用ASP.Net + .Net 3.5 + VSTS 2008 + IIS 7.0 + C#來開發Web應用程序。 我正在創建一個非常簡單的Web應用程序,我剛剛修改了page_load,Session_Start和Session_End。 這是我的代碼,我的問題是我發現會話結束消息在會話啟動消息后立即寫入文件。 我的測試方法只是打開IE來訪問這個頁面。 我認為會議應該持續很長時間,比如幾分鍾。 為什么會話結束如此之快? 即使我不關閉頁面,為什么seeion會結束?
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Hello World! ");
Session["SomeUserData"] = DateTime.Now;
}
protected void Session_Start(object sender, EventArgs e)
{
using (TextWriter tw = new StreamWriter(@"C:\TestSession\bin\session.txt", true))
{
// write a line of text to the file
tw.WriteLine(DateTime.Now + " Session Started.");
}
}
protected void Session_End(object sender, EventArgs e)
{
using (TextWriter tw = new StreamWriter(@"C:\TestSession\bin\session.txt", true))
{
// write a line of text to the file
tw.WriteLine(DateTime.Now + " Session Ended.");
}
}
即使將Session操作代碼添加到Page_Load方法中,我遇到了同樣的問題,這里是輸出文件內容,您可以看到會話結束事件在會話開始后立即被調用。
2010/7/15 0:11:14 Session Started.
2010/7/15 0:11:14 Session Ended.
2010/7/15 0:11:28 Session Started.
2010/7/15 0:11:28 Session Ended.
喬治,提前謝謝
如果我沒記錯的話,你需要為Session分配一些內容來激活它。 否則ASP.NET每次都會重新生成一個新會話(如果你使用fiddler來檢查新的會話ID)。
編輯:因為session.txt位於bin目錄中。 寫入bin目錄后,應用程序將重新啟動,以便立即觸發Session_End事件。 將session.txt從bin目錄移到其他地方將解決您的問題。
這種行為有時是由過度熱心的反病毒程序引起的。 嘗試禁用防病毒軟件,看看是否有幫助。 如果有幫助,則將站點的目錄添加到排除列表中。
關閉瀏覽器也不會對您的會話產生任何影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.