BizTalk 2016 SharePoint适配器强制使用443端口问题排查
我之前碰到过几乎一模一样的场景——BizTalk动态端口明明配置了443端口,结果适配器硬要走80,折腾了好一阵子才找到根因。下面给你一步步拆解问题和解决方案:
核心问题根源
你用的wss://协议地址是关键坑点!BizTalk的SharePoint适配器对wss://的默认解析逻辑是绑定到HTTP(80端口),哪怕你设置了WSS.ConfigAdapterWSPort,这个属性的优先级也低于地址本身的协议映射,导致适配器忽略你的端口配置,直接走默认80。
分步解决办法
1. 直接改用HTTPS协议的地址格式
把动态端口的地址从wss://开头改成https://,并且显式带上443端口,彻底强制适配器走HTTPS:
SendToSp(Microsoft.XLANGs.BaseTypes.Address) = "https://collaboration.xxx.co.uk:443/sites/HousingICTSolution/Technical/Lists/BizTalkTestList/";
别担心,新版CSOM适配器完全支持标准HTTPS地址,这样就从根源上避免了wss://带来的端口默认值问题。
2. 清理冲突的属性设置
你之前设置的WSS.ConfigAdapterWSPort现在可以删掉了——既然已经在地址里明确指定了443,这个属性反而会和地址端口产生冲突,让适配器混淆。剩下的属性保持正确设置就行:
msgNvpToSp(xxx.Integration.Common.Schemas.PropertySchema.FormType) = "DynamicSharePointSend"; msgNvpToSp(WSS.ConfigPropertiesXml) = "<ConfigPropertiesXml><PropertyName1>Title</PropertyName1><PropertySource1>" + msgReceived.YourTitleField + "</PropertySource1></ConfigPropertiesXml>"; msgNvpToSp(WSS.ConfigOverwrite) = "no"; msgNvpToSp(WSS.ConfigUseClientOM) = "yes";
注意把msgReceived.YourTitleField替换成你实际接收消息里的字段,确保属性源正确取值。
3. 验证适配器和站点配置
- 确认你用的是BizTalk 2016 FP3配套的新版SharePoint适配器:旧版适配器对HTTPS动态端口的支持有bug,FP3已经修复,但要确保适配器安装正确。
- 测试BizTalk服务器到SharePoint站点的HTTPS连通性:用浏览器或者PowerShell的
Invoke-WebRequest命令访问https://collaboration.xxx.co.uk:443/sites/...,确认没有证书问题或者重定向到HTTP的情况。
4. 检查挂起消息的上下文属性
发送后如果还有问题,查看挂起消息的上下文:
- 重点看
OutboundTransportLocation,应该显示完整的https://...:443/...地址,而不是带80的。 - 确认
WSS.ConfigUseClientOM的值是"yes",如果是"no"会回退到旧版Web服务,那HTTPS动态端口肯定用不了。
总结
本质就是wss://协议导致适配器默认走80端口,改用显式的HTTPS地址+端口,再清理冲突属性,就能解决这个“传输失败”的问题。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

