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

使用AxMSTSCLib传递负载均衡信息时遇RD连接失败问题

解决RD会话代理负载均衡信息传递问题

问题分析

你遇到的“指定的连接场不存在”错误(ExtendedDisconnectReason: 1040),本质是手动处理负载均衡信息字节流时破坏了协议格式要求:

  • 手动添加空格凑偶数字节,导致RD集合标识被篡改,代理无法识别
  • 不添加空格则不符合TPKT协议的偶数长度要求,数据包无法正常发送

正确解决方案

无需手动处理字节流,直接使用MSTSCLib提供的官方属性配置负载均衡信息,控件会自动完成编码和字节对齐操作。

代码示例

var rd = new AxMsRdpClient11NotSafeForScripting();

// 设置RD会话代理服务器地址,而非单台目标RD服务器
rd.Server = "rd-broker.domain.local";
rd.UserName = "user";

// 获取高级设置接口,配置负载均衡信息
var advancedSettings = (MSTSCLib.IMsRdpClientAdvancedSettings7)rd.AdvancedSettings;
// 替换为你的RD集合标识,格式与rdp文件完全一致
advancedSettings.LoadBalanceInfo = "tsv://MS Terminal Services Plugin.1.99999";

// 设置密码(非脚本安全模式下)
var secured = (MSTSCLib.IMsTscNonScriptable)rd.GetOcx();
secured.ClearTextPassword = "password";

// 启动连接
rd.Connect();

关键注意事项

  • Server地址必须指向RD代理服务器:若直接填写目标RD服务器,会绕过负载均衡逻辑
  • 严格匹配集合标识格式:确保tsv://MS Terminal Services Plugin.1.xxx中的xxx为你的RD集合ID,与rdp文件内的配置完全一致
  • 依赖官方属性处理协议细节:控件会自动满足TPKT协议的字节对齐要求,无需手动修改字节流

错误码说明

  • DiscReason: 3:表示连接被服务器端主动断开
  • ExtendedDisconnectReason: 1040:对应EDRC_RDSB_CONNECTION_BROKER_UNABLE_TO_FIND_FARM,即RD代理无法识别你传递的负载均衡信息中的连接场(集合)

内容的提问来源于stack exchange,提问作者StayMeaty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:40:26