BizTalk 动态 WCF-WSHttp 发送端口恢复为 Http 适配器

BizTalk Dynamic WCF-WSHttp Send Port reverting to Http Adapter

我正在尝试使用动态向 WCF-WSHttp 适配器发送消息
从业务流程发送端口,但 BizTalk 似乎总是
恢复到 HTTP 适配器。

根据我能够找到的文档,我应该只需要
从我的表达式形状设置传输类型以获取 BizTalk
使用 WCF-WSHttp 适配器,我是,但它似乎仍然是
还原。下面是我正在设置的表情形状的示例
属性(如您所见,我都尝试过
Microsoft.XLANGs.BaseTypes.TransportType 和
BTS.OutboundTransportType):

1
2
3
4
5
6
7
Body(BTS.OutboundTransportType) ="WCF-WSHttp";

SendMessagePort(Microsoft.XLANGs.BaseTypes.Address) =
System.String.Format("{0}/Accept{1}","http://myserver/myservice/
myservice.svc/Accept{0}", messageInfo.MessageType);
SendMessagePort(Microsoft.XLANGs.BaseTypes.TransportType) ="WCF-
WSHttp";

我最终解决了我的问题,但我仍然不确定我看到的行为的原因。

问题中提到的表达式形状位于原子范围内。一旦业务流程退出包含表达式形状的范围,传输类型就会重置回其原始值。将表达式移出原子范围解决了问题,因为 TransportType 设置正确。


可能是克雷格 :-)

使用动态发送端口时,BizTalk 使用 url 的"方案"部分来决定使用哪个适配器。

当您的 url 以 "Http://" 或 "Https://" 开头时,BizTalk 将始终使用 HTTP 适配器。
同样,以 ftp:// 开头的 url\\ 将使用 FTP 适配器。
同样适用于自定义适配器 - 当您安装适配器的配置时,您注册要使用的名字对象;例如 - 开源计划任务适配器使用 schedule:// (我相信)。

将动态发送端口与 WCF 一起使用比大多数其他适配器稍微复杂一些,因为需要进行各种配置,但您可以在此处找到详细说明,只需向下滚动到"动态发送端口"部分大约一半一路下来。