编程语言
首页 > 编程语言> > c# – 直接向BizTalk或通过MSMQ发送消息?

c# – 直接向BizTalk或通过MSMQ发送消息?

作者:互联网

这是我第一次使用BizTalk进行跨机器,异步,可靠的通信.
我想知道有没有办法直接从一台机器发送消息到BizTalk队列,或者我必须使用本地MSMQ,后者又向BizTalk发送消息?

在C#中,是否有用于向BizTalk队列发送消息的绑定?
对于MSMQ,我知道有NetMsmqBinding.

干杯

更新:

由于我引入了一些混乱,我会尝试解释一下,如果我错了,请纠正我.
据我所知,ESB实现了可用于可靠的异步通信(简称消息传递)的队列或消息通道的概念.现在,我很难将BizTalk放入这个概念中.如果BizTalk是ESB,如Sonic或TIBCO,有几十种ESB概念的解释和相同数量的意见……
现在,据我所知,例如在实现JMS API的TIBCO中,本地客户端机器上没有队列或排队服务(例如MSMQ),但它们在TIBCO ESB和客户端应用程序中存在和配置我使用JMS API向这些队列发送消息.
因此,当我想通过BizTalk与不同机器上的应用程序进行通信并且我想使用消息传递时,我将在本地计算机上使用MSMQ,MSMQ会将这些消息传输到BizTalk和下游的其他应用程序?
另外,我应该在哪里配置本地MSMQ和BizTalk之间的通信?我应该将BizTalk配置为侦听给定的MSMQ以获取新消息,还是应该在MSMQ本身上进行某些配置?

解决方法:

BizTalk通过称为适配器的人工制品与外界进行通信,这些工具可以通过各种消息传递协议提供外部世界可见的端点.

有一个MSMQ适配器,它似乎能够从本地计算机或远程计算机上读取和发布到队列.我从来没有使用它,所以我来自这个适配器读取docs的位置并且随着我的进展而发现.我发现BizTalk文档特别难以导航,特别是因为很多微软链接现在都没有特别 – 我花了一点时间才找到我提到过的这些页面.如果你发现任何事情并不明显,请告诉我,因为我确信有一些我从未能找到的有用资源.

要配置BizTalk以侦听队列:

>创建单向接收端口
>创建与该端口关联的单向接收位置
>将接收位置的传输类型设置为“MSMQ”
>点击“配置”
>指定要使用的凭据和队列名称(包括计算机名称,暗示它在远程队列上同样有效)
>根据您的方案适当设置其他属性

应该就是它的全部内容.然后,发布到该队列应该会在该端口上接收消息,该消息会立即将其保留到消息框数据库中.您必须使用管道和/或地图进行一些处理,以便对消息执行任何有用的操作.

但是,您绝不仅限于MSMQ.可以使用pretty comprehensive list,BizTalk不会限制您使用任何特定的消息传递协议.您还可以使用所需的任何行为实现自定义适配器.为了更有效地回答您的问题,了解您的实际要求是什么有用 – 例如,客户端应用程序的用例是什么?

标签:c,wcf,messaging,msmq,biztalk
来源: https://codeday.me/bug/20190529/1178810.html