如何讓 ASP.NET 使用 Session 資料時不要再自動消失

我們在 ASP.NET 網站使用 Session 時,常常因為 web.config 修改或更新 Bin\ 目錄下的 dll 而導致 Session 消失,Session 常常消失也挺惱人的,不是導致突然被自動登出,就是發生非預期的 Exception ... 等。 ( 有時候因為主機安裝防毒軟體也會造成 Session 資料無故消失,因為這些防毒軟體可能會誤判某檔案、某記憶體含有病毒資訊 )

這個時候我們可以將 Session 預設的模式 ( InProc ) 改成 StateServer 模式,但此時必須確認本機的 ASP.NET 狀態服務 是啟動的狀態!

  1. 請到 控制台 > 系統管理工具 > "服務"
  2. 找到 "ASP.NET 狀態服務" 或 "ASP.NET State Service"
  3. 此服務預設是屬於「停用」的狀態,請先切換到「自動」再按下「套用」再直接按「啟動」按鈕即可。

接者你可以到你的 ASP.NET 網站設定 web.config 組態檔,設定如下:

<configuration>
  <system.web>
    <sessionState mode="StateServer"
      stateConnectionString="tcpip=localhost:42424"
      cookieless="false"
      timeout="20"/>
  </system.web>
</configuration>

這樣就可以將 Session 的資料存到本機的 ASP.NET 狀態服務去了,也不會無故 Session 自動消失了。

除了這個方法外,ASP.NET 還可以用 SQL Server 儲存 Session 資料,至於設定的方法可以參考 MSDN 網頁,網址如下:

HOW TO:設定 SQL Server 以儲存 ASP.NET 工作階段狀態
http://support.microsoft.com/kb/317604

相關連結:

  

此文章由 will 發表於 2008/1/12 上午 09:02:00

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: ASP.NET | IIS | SQL Server

標籤: , , , ,

收藏:

相關文章

評論

八月 8. 2008 11:31

初學者

請問一下
這個設定有適用於.net 1.1嗎?
因為我看到執行檔所在路徑是2.0
那個欄位也沒辦法改成1.1

初學者 tw

八月 8. 2008 12:00

will

ASP.NET 1.1 應該可以用吧,跟 "ASP.NET 狀態服務" 執行檔在哪裡無關。

will tw

新增評論


(將顯示您的Gravatar圖示)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



線上預覽

十月 14. 2008 06:20