【问题标题】:Windows Azure Queues, WCF, MSMQ integrationWindows Azure 队列、WCF、MSMQ 集成
【发布时间】:2010-03-19 10:29:31
【问题描述】:

我有一个场景,我需要一个桌面控制台应用程序来与 Windows Azure 队列通信......最重要的是服务器最终会收到消息。此外,桌面应用程序有时可能会与 Internet 断开连接。在传统的 WCF+MSMQ 方法中,您可以发送一条消息,该消息将缓存在 MSMQ 中,直到 MSMQ 可以到达服务器的 MSMQ 并发送消息。当 Windows Azure 是服务器端时,什么是等效的?

是否可以使用相同的方法,即 MSMQ 只与 Windows Azure 队列而不是 Windows 服务器上的 MSMQ 通信?

也许 Windows Azure 队列是错误的方法?我听说过一种叫做消息缓冲区的东西,但不知道这是什么(现在!)。

感谢您的帮助

克里斯

【问题讨论】:

    标签: wcf msmq azure


    【解决方案1】:

    您可以编写一个 MSMQ 侦听器服务,在重新建立与 Internet 的连接后完成将消息移动到 Azure 队列。我认为这不会太难。

    更新 可能我的回答不清楚。根据这个问题,客户端偶尔会连接到互联网,因此您需要一种方法来存放消息,直到 intertubes 解开。使用 Windows 最简单的方法是将消息放入 MSMQ 本地队列中。然后,您将有一个服务监控该队列。如果有消息,它可以访问托管在云中的服务,它会发送消息。消息发送后,可以从队列中删除。

    【讨论】:

    • 嗨,我需要保持它面向服务,而不是面向消息..即,如果我要通过 msmq 传输 WCF 消息有效负载然后 azure 我很确定这不会从某种意义上说,WCF Azure 绑定与 MSMQ 绑定不同,因此这两个通道的消息有效负载将不兼容。整个事情必须是面向消息的,这基本上意味着担心消息而不是服务。由于这个原因和天蓝色的成本,我决定走传统的 WCF/MSMQ/IIS7/Win2008 路线。
    【解决方案2】:

    为了将消息排队到 Azure 队列存储,您必须连接到 Internet。如果您想处理断开连接的场景,这完全取决于您。我会保持解决方案非常简单,并使用 SQL Server Compact 等本地存储,然后在连接后立即发送消息,可能借助 Windows 服务(这样您就不需要运行桌面应用程序) .

    【讨论】:

    • 嗯,这在某种程度上是一种耻辱,因为这一切都是通过 WCF 和 MSMQ 开箱即用地实现的。
    【解决方案3】:

    您可以使用 Azure AppFabric 服务总线消息缓冲区来执行此操作 - 无需使用队列。查看以下站点上的相关示例下载:http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11 - 他们应该比我更好地回答您的问题。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 2014-04-07
      • 2012-10-16
      • 1970-01-01
      • 2015-02-07
      相关资源
      最近更新 更多