我有一个场景,我需要桌面控制台应用程序与Windows Azure队列进行通信...最重要的是服务器最终收到消息。此外,桌面应用程序有时可能会脱离Internet。在传统的WCF + MSMQ方法中,您将能够发送一条消息,该消息将在MSMQ中缓存,直到MSMQ可以到达服务器的MSMQ并发送消息。当Windows Azure是服务器端时,等效的是什么?
是否可以使用相同的方法,MSMQ只与Windows Azure队列进行通信而不是Windows Server上的MSMQ?
也许Windows Azure Queue是错误的方法?我听说过一个叫做消息缓冲区的东西,但不知道它是什么(还有!)。
感谢您的帮助
克里斯
答案 0 :(得分:1)
您可以编写一个MSMQ侦听器服务,该服务在重新建立与Internet的连接后完成将消息移动到Azure队列。我认为这不会太难。
<强>更新强> 也许我的回答并不清楚。根据问题,客户端偶尔会连接到互联网,因此您需要一种方法来停放消息,直到intertubes被解开。使用Windows最简单的方法是将消息放入MSMQ本地队列。然后,你有一个服务监控队列。如果有消息并且它可以访问云中托管的服务,则会发送消息。消息发送后,可以从队列中删除。
答案 1 :(得分:0)
要将邮件排入Azure Queue Storage,您必须连接到Internet。如果您想处理断开连接的场景,那完全取决于您。我会保持解决方案非常简单并使用本地存储(如SQL Server Compact),然后在连接时立即发送消息,也许借助Windows服务(这样您就不需要运行桌面应用程序)
答案 2 :(得分:0)
您可以使用Azure AppFabric服务总线消息缓冲区执行此操作 - 无需使用队列。请查看以下网站上的相关示例下载:http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11 - 他们应该比我更好地回答您的问题。
此致