You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决基于SQL Server Express 2022的Windows远程桌面连接Broker高可用性配置连接错误问题

如何解决基于SQL Server Express 2022的Windows远程桌面连接Broker高可用性配置连接错误问题

我来帮你一步步排查这个问题,你已经做了不少基础配置,咱们从几个容易忽略的关键点入手:

  • 先搞定SQL Express的端口与实例解析问题
    SQL Express默认是命名实例,通常用动态端口运行,哪怕你手动指定了1433,也得确认配置是否生效:

    1. 打开SQL Server配置管理器,找到SQL Server网络配置 -> 对应命名实例的TCP/IP,右键属性进入IP地址标签页
    2. 拉到最下面的IPAll部分,确认TCP端口是1433,把TCP动态端口清空
    3. 重启SQL Server服务和SQL Server Browser服务(这个服务必须启动,除非你完全不用实例名仅用端口访问,因为它负责UDP 1434端口的实例解析)
      另外,你提到向导提示1434端口,这个是SQL Browser用的UDP端口,虽然防火墙关了,但也要确认该服务在SQL服务器上是运行状态。
  • 调整连接字符串的细节
    你的连接字符串是:

    Driver={ODBC Driver 18 for SQL Server};Server=tcp:SERVERNAME\NAMEDINSTANCE,1433;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=rds_db
    

    这里有两个可以调整的地方:

    1. 既然已经指定了1433端口,可以把实例名去掉,写成tcp:SERVERNAME,1433,这样绕开SQL Browser的依赖,直接通过端口访问
    2. ODBC Driver 18默认强制加密连接,而SQL Express默认没有配置SSL证书,可能导致连接失败。可以在连接字符串末尾加上;Encrypt=Optional,关闭强制加密试试
  • 核对SQL权限的完整性
    你已经给AD组分配了权限,但要确认几个细节:

    1. 这个AD组里必须包含两台RDS主机的计算机账户(不是用户账户),因为RDS Broker服务是以Network Service身份运行,会用主机的计算机账户去访问SQL
    2. 在SQL Server里,这个AD组的登录不仅要映射到rds_db数据库,还要确保在该数据库里对应的用户拥有db_owner权限(光有服务器级的sysadmin虽然够,但数据库级权限要明确)
    3. 确认RDS主机上的RDS Management Server本地组里,已经添加了两台RDS主机的计算机账户和Network Service账户
  • 让Broker自动创建数据库,不要手动建空库
    你现在是手动创建了空的rds_db,其实RDS Broker配置向导可以自动创建并初始化数据库结构。试着删掉手动创建的rds_db,然后重新运行Broker HA配置向导,让它自动创建数据库,这样能避免手动建库可能带来的schema或权限问题。

  • 先验证ODBC连接是否正常
    在RDS主机上打开64位ODBC数据源管理器(因为RDS服务是64位的,必须用64位ODBC测试),创建一个系统DSN,用和Broker相同的连接参数测试连接到SQL的rds_db。如果ODBC连接都失败,那问题出在SQL或网络层面;如果ODBC能通,再排查Broker的配置。

  • 关于SQL Express的兼容性
    放心,SQL Server Express 2022完全支持RDS Connection Broker的高可用性,唯一的限制是数据库最大10GB,但RDS Broker的数据库很小,远达不到这个限制,所以不是版本的问题。

按照上面的步骤逐一排查,应该能定位到连接失败的原因。

备注:内容来源于stack exchange,提问作者sprawdzone.it

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:13:03