轉載一片關於asp.net Session丟失問題的總結—精闢啊!!

來源:互聯網
上載者:User
Session state模式的健壯性
InProc
:如果工作者進程(aspnet_wp.exe)進行資源回收或者應用程式定義域(appdomain)重啟動,session state就會丟失。這是因為session state是儲存在一個應用程式定義域的記憶體空間中的。對設定檔(如web.config和machine.config)的修改或者\bin目錄的任何改變(例如在你使用VS編譯應用程式後產生了一個新的dll)都可能引起重啟動,詳細請見KB324772。在1.0中,也有一個bug可能引起工作者進程重啟動,但這個bug在1.1中已經修複,見KB321792。
如果你使用的是IIS6.0,你可以在IIS Manager中找到Application Pools/DefaultAppPool,其中可以看到回收(Recycling)選項卡與效能(Performace)選項卡中是否有引起IIS工作者進程(w3svc.exe)停止工作的參數。
StateServer:解決了InProc模式的session state丟失問題。允許一個webfarm在中央伺服器中儲存session。只能在State Server上出現失敗。
SQLServer:與StateServer相似。session state的資料在SQL Server重啟後仍然保留著,你也可以按照KB311209的步驟使用SQL server failover cluster

Session 丟失的原因:
原因1:
bin目錄中的檔案被改寫,asp.net有一種機制,為了保證dll重新編譯之後,系統正常運行,它會重新啟動一次網站進程,這時就會導致Session丟失,所以如果有access資料庫位於bin目錄,或者有其他檔案被系統改寫,就會導致Session丟失。
詳見:http://support.microsoft.com/kb/324772

原因2:
檔案夾選項中,如果沒有開啟“在單獨的進程中開啟檔案夾視窗”,一旦建立一個視窗,系統可能認為是新的Session會話,而無法訪問原來的Session,所以需要開啟該選項,否則會導致Session丟失

原因3:
似乎大部分的Session丟失是用戶端引起的,所以要從用戶端下手,看看cookie有沒有開啟

原因4:
Session的時間設定是不是有問題,會不會因為逾時造成丟失

原因5:
IE中的cookie數量限制(每個域20個cookie)可能導致session丟失

原因6:
Global.asax或者Web.config檔案被更改.
防毒軟體可能會修改以上檔案.配置防毒軟體不要掃描.asax , .config檔案。配置
Web應用程式以out-of-process模式儲存Session.
詳見:http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316148

原因7:
使用web garden模式,且使用了InProc mode作為儲存session的方式。
詳見:http://support.microsoft.com/kb/822171

原因8:
在 ASP.NET 中,在高負載情況下訪問工作階段狀態時,類比可能會丟失。 Microsoft 現在提供了受支援的修複程式.

詳見:http://support.microsoft.com/kb/324479/zh-cn

原因9:
設定檔中processModel標籤的memoryLimit屬性。
詳見:http://support.microsoft.com/kb/324772

原因10:
由於設定iis6的 應用程式集區內的效能內的最大web進程數導致的,由於session預設是存放在web進程裡的,進程開多了,導致session不能共用,每次重新整理又由不同的進程來處理。

原因11:
在IE6中使用FrameSet.
詳見:http://support.microsoft.com/kb/323752

參考:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q324772

http://www.zaqi.net/files_view.asp?files_id=794

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316148

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.