Biztalk 如何在自定义管道中设置基站操作?

Biztalk 如何在自定义管道中设置基站操作?,biztalk,pipeline,Biztalk,Pipeline,到目前为止,我只在BizTalk应用程序中使用了业务流程,到目前为止,它运行良好。但现在我想将一些不必要的业务流程转换为纯消息路由,以获得更好的性能 我有一个只有一个方法的WCF服务,它工作得很好,因为我可以将BtsActionMapping设置为只有一个方法。但是我得到的第二个WCF服务有两个方法,现在BizTalk不知道如何路由我的消息。我到处都读过,你需要在自定义管道中设置BTS.Operation来让它工作。但是我已经到处找了一个关于如何做到这一点的教程或例子 我一直在尝试实现IBase

到目前为止,我只在BizTalk应用程序中使用了业务流程,到目前为止,它运行良好。但现在我想将一些不必要的业务流程转换为纯消息路由,以获得更好的性能

我有一个只有一个方法的WCF服务,它工作得很好,因为我可以将BtsActionMapping设置为只有一个方法。但是我得到的第二个WCF服务有两个方法,现在BizTalk不知道如何路由我的消息。我到处都读过,你需要在自定义管道中设置BTS.Operation来让它工作。但是我已经到处找了一个关于如何做到这一点的教程或例子


我一直在尝试实现IBaseComponent、IComponentUI、IComponent和IPersistPropertyBag接口来实现这一点。我是朝着正确的方向走,还是我走得太远了?有谁能给我举个例子或者更好的例子,告诉我怎么做吗?

开始编写自定义管道组件的最简单方法是使用;它将为您生成所有样板文件。我还提供了几个自定义管道组件,您可以将其用作示例,可以看到一些非常接近您需要的组件(即,仅设置自定义消息属性的组件)


至于设置属性,只需调用message.Context.Write/Promote并传入属性的名称空间和名称,在本例中分别为“”和“Operation”。

开始编写自定义管道组件的最简单方法是使用;它将为您生成所有样板文件。我还提供了几个自定义管道组件,您可以将其用作示例,可以看到一些非常接近您需要的组件(即,仅设置自定义消息属性的组件)


至于设置属性,您只需调用message.Context.Write/Promote并传入属性的名称空间和名称,在本例中分别为“”和“Operation”。

谢谢您的回答,我似乎走对了方向。使用您提供的代码,我现在已经编写了自定义组件。然而,我似乎无法执行它。我已经创建了一个接收管道,并将自定义组件放入反汇编程序中。然后我将管道连接到发送端口。有了这个,我仍然知道BTS.操作没有设置。我是否需要将任何BizTalk架构导入/包括到我的架构中?还是我在创建和部署管道时做错了什么?如果不知道更多细节,很难说会出什么问题。但是,有些事情值得研究:确保将属性设置在正确的位置(正确的管道)。还有,你想通过BTS.Operation+Adapter操作映射路径,而不是直接设置WCF.Action属性,这有什么原因吗?在我得到的书中,它说这就是必须要做的事情,然后我在谷歌上搜索你如何做的答案,我没有找到其他解决方案。。。所以我从来没有想过用别的方法。但是您是对的,设置WCF.Action属性可能是解决此问题的更好方法。现在我有了两个发送端口,它们使用单操作头来决定在web服务中调用什么方法。谢谢你的回答,看起来我的思路是正确的。使用您提供的代码,我现在已经编写了自定义组件。然而,我似乎无法执行它。我已经创建了一个接收管道,并将自定义组件放入反汇编程序中。然后我将管道连接到发送端口。有了这个,我仍然知道BTS.操作没有设置。我是否需要将任何BizTalk架构导入/包括到我的架构中?还是我在创建和部署管道时做错了什么?如果不知道更多细节,很难说会出什么问题。但是,有些事情值得研究:确保将属性设置在正确的位置(正确的管道)。还有,你想通过BTS.Operation+Adapter操作映射路径,而不是直接设置WCF.Action属性,这有什么原因吗?在我得到的书中,它说这就是必须要做的事情,然后我在谷歌上搜索你如何做的答案,我没有找到其他解决方案。。。所以我从来没有想过用别的方法。但是您是对的,设置WCF.Action属性可能是解决此问题的更好方法。现在我有两个发送端口,它们使用单操作头来决定在web服务中调用什么方法。