The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓【ASP.NET 狀態服務】開放遠端連接

如果你有兩台以上的電腦要架構 Webfarm 架構時,可能會想將每一台 Web 主機的 Session 全部集中存在其中一台機器,使用者才能每一台主機共用 Session 資料。

但是預設來說,ASP.NET 狀態服務 僅允許「本機連接」,也就是除了本機連線之外,要透過其他主機連接是不行的,但以下的方式可以解決此問題:

  1. 首先,必須使用 regedit 工具修改系統機碼

    執行 regedit

    先找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\Port

    再將 AllowRemoteConnection 改成 1

    如果你想改預設的 42424 Port 的話,也可以在這時修改成你想用的 Port number 並設定好防火牆規則。

    先找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\Port
  2. 接著,將 ASP.NET 狀態服務 重新啟動。
  3. 再來,修改每一台 Web 伺服器的 web.config 即可。

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