C# 直接向BizTalk发送消息还是通过MSMQ发送消息?

C# 直接向BizTalk发送消息还是通过MSMQ发送消息?,c#,wcf,msmq,biztalk,messaging,C#,Wcf,Msmq,Biztalk,Messaging,这是我第一次使用BizTalk进行跨机器、异步、可靠的通信。 我想知道是否有一种方法可以直接将消息从一台计算机发送到BizTalk队列,或者我必须使用本地MSMQ,而本地MSMQ又将消息发送到BizTalk队列 在C#中,是否存在用于向BizTalk队列发送消息的绑定? 对于MSMQ,我知道有NetMSMQ绑定 干杯 更新: 由于我引入了一些混淆,我将尝试解释一下,如果我错了,请纠正我。 据我所知,ESB实现了队列或消息通道的概念,可用于可靠的异步通信(简称消息传递)。现在,我很难将BizTal

这是我第一次使用BizTalk进行跨机器、异步、可靠的通信。
我想知道是否有一种方法可以直接将消息从一台计算机发送到BizTalk队列,或者我必须使用本地MSMQ,而本地MSMQ又将消息发送到BizTalk队列

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

干杯

更新:

由于我引入了一些混淆,我将尝试解释一下,如果我错了,请纠正我。
据我所知,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的操作与端口概念无关,包括接收和发送端口。这些端口利用许多不同的技术来读写消息,但没有一个是与其他BizTalk服务器直接通信的。您需要利用MSMQ甚至基本Web服务之类的功能—这取决于您自己—但您需要在两者之间使用某种通信协议。

BizTalk通过称为适配器的人工制品与外部世界通信,它可以通过多种消息传递协议提供外部世界可见的端点

有一个MSMQ适配器,它似乎能够从本地计算机或远程计算机上的队列进行读取和发布。我从来没有使用过它,所以我从一个位置来阅读这个适配器上的,并发现随着我前进。我发现BizTalk文档尤其难以浏览,尤其是因为很多microsoft链接现在都没有特别的地方——我花了一点时间才找到我提到的这些页面。如果你发现有什么不明显的地方,一定要告诉我,因为我肯定有一些有用的资源我从来没有找到过

要将BizTalk配置为侦听队列,请执行以下操作:

  • 创建一个单向接收端口
  • 创建与该端口关联的单向接收位置
  • 将接收位置的传输类型设置为“MSMQ”
  • 单击“配置”
  • 指定要使用的凭据和队列名称(其中包括计算机名称,这意味着它在远程队列上同样有效)
  • 根据您的场景适当设置其他属性
这应该是全部。然后,发布到该队列将导致在该端口上接收消息,该端口会立即将消息持久化到message box数据库。为了对消息进行任何有用的处理,您必须使用管道和/或映射进行一些处理

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

“另外,我应该在哪里配置本地MSMQ和BizTalk之间的通信?我应该将BizTalk配置为侦听给定的MSMQ以获取新消息,还是应该在MSMQ本身上进行一些配置?”

答复: 您需要配置BizTalk以按定义的间隔轮询相应的队列(可以在BizTalk中配置)。
在MSMQ中,您需要向用户帐户授予访问权限,用户帐户在轮询队列时将使用该帐户。

您所说的“直接通信”是什么意思?将消息从c#app发送到BizTalk上的队列您能更具体地说明您所说的“队列”是什么意思吗?我本人只是BizTalk的新手,但据我所知,没有队列的具体概念n BizTalk模型。我将在回答时假设存在一些混淆的想法,我将在那里解决这些问题,如果有更多细节,我将很乐意稍后进行编辑。我已尝试在更新问题时更具体一些。谢谢。这使情况更清楚。我相信我已经发布的内容回答了您的问题-哟您可以使用带有MSMQ适配器的接收端口从本地或远程计算机上的队列接收消息-尽管我自己对您如何准确设置这些消息的详细信息有点不清楚。我已尝试在更新问题时更具体一些。