从 BizTalk 收听 Azure 队列

Listen to Azure Queue from BizTalk

我已经尝试了几个星期了。这是一个非常简单的概念。

我只想从本地安装的 BizTalk Server 2013 R2 中读取 Azure 云队列(不是服务总线!)的消息,然后允许 BizTalk 在我们的内部网络上对该消息执行某些操作。我正在按照此类示例创建到 Azure 队列的端口:

http://social.technet.microsoft.com/wiki/contents/articles/20211.biztalk-server-2013-connect-to-window-azure-blob-storage.aspx

在我的例子中,这需要是一个接收(它将接收队列消息)。所以,我有一个接收位置,它是一个指向的 WCF-WebHttp 适配器:https://myappname.queue.core.windows.net/,操作如下:

 <Operation Name="Query" Method="Get" Url="/myqueue/messages"/>
 <Operation Name="Remove" Method="Delete" Url="/myqueue/messages"/>

这似乎并没有神奇地做任何事情,而且我不确定我将如何从 BizTalk 启动对 Azure 队列的读取调用。我是否需要启动某种轮询消息?我如何使用 WCF-WebHttp 适配器端口来做到这一点?

也许问题是:如何使以 WCF-WebHttp 接收位置开始的编排执行某些操作? IE。我如何让它轮询队列/我应该从什么开始编排?

WCF-WebHttp 没有任何内置的轮询机制。您必须创建或模拟一个。

此时您需要为此执行一些自定义实现。有很多不同的选择,但我可能会选择其中之一。

  1. 使用 Scheduled Task Adapter 将 GET 请求发送到队列端点并将该消息发布到 MessageBox
  2. 创建一个 Windows 服务或计划作业(也许是 Powershell?)进行轮询并将任何消息写入 BizTalk 可以自动使用的对象(可能是 MSMQ 或文件位置)