.Net 使用 ASP.NET State Service 讓 Session 不會自動消失 .Net 使用 ASP.NET State Service 讓 Session 不會自動消失
  .NET       ez      2012-06-04

因為修改 Web.config、Bin及回收都會造成 Session 遺失,只需開起  ASP.NET State Service 即可解決此問題。

到控制台 設定 > 服務 > ASP.NET State Service :

將 啟動類型 改為 自動,並且 啟動服務 :

接下來只需要修改 Web.config,即可讓 ASP.net 使用 ASP.NET State Service 來記錄 Session :

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

/* timeout 單位為分鐘 */

到此已經完成,但如果要讓多台主機共用 Session,必須要允許 ASP.NET State Service 開放外部連線。

需要透過 RegEdit 修改 登入檔。

首先開啟 regedit:

編輯 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters 將 AllowRemoteConnection 改為 1

編輯完成後重新啟動 ASP.NET State Service,即可讓外部連線了。

※如果無法連線,記得防火牆要開啟Port喔,預設為 Port 42424。

也可以依照個人需求修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters 的 Port 項目。


標籤:   .NET

我要留言