2012年9月10日 星期一

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

轉: http://blog.miniasp.com/post/2008/01/12/How-to-avoid-Session-data-loss-in-ASPNET.aspx

如何讓 ASP.NET 使用 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

沒有留言:

張貼留言