如果你有兩台以上的電腦要架構 Webfarm 架構時,可能會想將每一台 Web 主機的 Session 全部集中存在其中一台機器,使用者才能每一台主機共用 Session 資料。
但是預設來說,ASP.NET 狀態服務 僅允許「本機連接」,也就是除了本機連線之外,要透過其他主機連接是不行的,但以下的方式可以解決此問題:
- 首先,必須使用 regedit 工具修改系統機碼
先找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\Port
再將 AllowRemoteConnection 改成 1
如果你想改預設的 42424 Port 的話,也可以在這時修改成你想用的 Port number 並設定好防火牆規則。
- 接著,將 ASP.NET 狀態服務 重新啟動。
- 再來,修改每一台 Web 伺服器的 web.config 即可。
<configuration>
<system.web>
<sessionState mode="StateServer"
stateConnectionString="tcpip=You.State.Server.IP:42424"
cookieless="false"
timeout="20"/>
</system.web>
</configuration>