歡迎來到 Microsoft Q&A!
感謝您提供詳細資訊。
如果現有工作階段仍可正常使用,但在 RD Connection Broker 容錯移轉 (failover) 後無法正確分配新的連線,通常表示目前作用中的 Broker 未能正確處理來自 HA 資料庫的工作階段路由資訊,即使基本的 SQL 連線看起來運作正常。
針對此問題,建議您檢查以下幾個方面:
1. 驗證 RD Connection Broker 與 SQL 資料庫之間的通訊
在 HA 部署中,所有 Broker 都依賴共用 SQL 資料庫來儲存工作階段狀態與連線路由資訊。請注意,如果 Connection Broker 無法正確與 SQL 資料庫通訊,工作階段分配與負載平衡作業可能會失敗。
請檢查:
- 從每個 Broker 驗證 SQL 連線: Test-NetConnection <SQLServer> -Port 1433
- 確認 ODBC 驅動程式版本與連線字串設定相符。
- 確認 Broker 電腦帳戶具有適當的 SQL 權限。
- 檢查兩台 Broker 與 SQL Server 上的事件檢視器 (Event Viewer) ,查看是否有資料庫連線相關錯誤。
2. 檢閱 RD Connection Broker HA 設定
請確認兩個 Broker 使用相同的高可用性設定:
- 確認 Client Access Name(Broker DNS 名稱) 設定正確。
- 驗證 HA 設定中的 SQL 連線字串是否正確。
- 確認兩台 Broker 均正確顯示在 RDS 部署中。
- 確認 Session Host 與用戶端皆能正確解析 Broker 叢集名稱的 DNS。
3. 檢查 Broker 與 Session Broker 事件記錄
在重現問題後,請收集以下記錄:
Applications and Services Logs
Microsoft-Windows-TerminalServices-SessionBroker Microsoft-Windows-TerminalServices-RemoteConnectionManager Microsoft-Windows-TerminalServices-LocalSessionManager
Application 與 System Logs
請特別留意容錯移轉後立即出現的錯誤,例如:
- 資料庫存取失敗
- 工作階段重新導向失敗
- 端點註冊失敗
4. 驗證 Session Host 註冊狀態
作用中的 Broker 必須持續與所有 RD Session Host 保持通訊。
在容錯移轉後,請確認:
- Session Host 仍然成功註冊至目前作用中的 Broker。
- Session Host 能夠解析並連線至 Broker 叢集名稱。
- 檢查 Session Broker 事件記錄中是否有端點註冊失敗的相關事件。
請注意,Session Host 與其他 RDS 元件都依賴 Broker 的正常連線來分配新的工作階段。
5. 驗證負載平衡與 DNS 設定
對於 HA 部署,建議使用正確的負載平衡機制或 DNS Round Robin 設定來管理 Connection Broker。
不正確的 DNS 記錄或過期的 DNS 快取可能導致用戶端被導向已無法正確處理要求的 Broker。
請確認:
- Broker 叢集的 DNS 記錄設定正確。
- 負載平衡器健康狀態探測(Health Probe)正常運作(如適用)。
- 用戶端與 Session Host 的名稱解析結果正確。
6. 檢查版本或設定不一致的情況
請確認:
- 兩台 Connection Broker 執行相同版本的 Windows Server 及相同的累積更新。
- 所有 Broker 上的 RDMS 與 Tssdis(Connection Broker)服務運作正常。
- 整個 RDS 部署中的憑證設定一致。
7. 在容錯移轉期間收集診斷資料
如果重新啟動 Broker 服務後問題會暫時消失,建議在下一次容錯移轉發生後,先收集記錄,再重新啟動服務。
這有助於判斷是否存在以下情況:
- Broker 與 SQL 之間的連線中斷。
- Session Host 的註冊資訊變成過期或失效。
- 作用中的 Broker 停止處理連線路由要求。
此外,建議在故障發生期間收集兩台 Broker 的 Microsoft-Windows-TerminalServices-SessionBroker 記錄,以及任何相關的 SQL 錯誤訊息。
重點檢查項目
最重要的驗證項目包括:
- 兩台 Connection Broker 的 SQL 連線能力與相關權限。
- HA 設定的一致性(Client Access Name、Connection String、DNS)。
- Session Host 是否已正確註冊至作用中的 Broker。
- 容錯移轉後立即收集的 Session Broker 作業記錄。
- Broker 角色切換期間負載平衡器與 DNS 的行為。
如果您能提供以下資訊:
- Windows Server 版本
- HA 架構(DNS Round Robin 或 Load Balancer)
- 容錯移轉後出現的 SessionBroker Event ID
將有助於進一步縮小問題範圍並找出根本原因。
參考資料:設定 RD 連線代理人以取得高可用性 | Microsoft Learn
希望以上資訊能協助您釐清問題。如果此回覆對您有所幫助,歡迎按一下 Accept Answer。
感謝您選擇 Microsoft Q&A 提出您的問題。