0

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

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

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";
4

2 回答 2

0

可能是克雷格:-)

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

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

由于所需的各种配置,使用 WCF 的动态发送端口比大多数其他适配器稍微复杂一些,但您可以在此处找到详细说明,只需向下滚动到大约一半的“动态发送端口”部分。

于 2009-03-09T08:19:57.280 回答
0

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

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

于 2010-06-25T10:27:12.370 回答