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

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

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

1.  首先，必須使用 regedit 工具修改系統機碼  
      
    ![執行 regedit](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/edd064cf728df49c1a25-Screenshot-080110-150846.png "執行 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](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/c9b19dad41be0e27c067-Screenshot-080110-151743.png "先找到 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>
