2010-03-19 49 views
1

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

是否可以使用相同的方法,其中MSMQ只与Windows Azure队列通信而不是Windows Server上的MSMQ进行通信?

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

感谢您的帮助

克里斯

回答

1

您可以编写一个移动完成的消息,在Azure队列时到互联网的连接已经重新建立一个MSMQ监听器服务。我认为这不会太困难。

更新 也许我的答案并不清楚。基于这个问题,客户偶尔会连接到互联网,所以您需要一种方法来停止消息,直到交互信息被解开。使用Windows最简单的方法是将消息放入MSMQ本地队列中。 YOu然后有一个服务监视队列。如果有消息并且可以访问云中托管的服务,则会发送消息。一旦消息已发送,它可以从队列中删除。

+0

您好,我需要保持它面向服务,而不是消息导向..即,如果我通过msmq,然后天蓝色的渠道一个WCF消息有效载荷我很确定这不会被支持的意义上说, WCF Azure绑定与MSMQ绑定不同,因此两个通道的消息负载将不兼容。整个事情必须以消息为导向,这基本上意味着担心消息而不是服务。 因为这个原因和天蓝的成本,我决定走下传统的WCF/MSMQ/IIS7/Win2008路线。 – krisdyson 2010-03-24 11:49:17

+0

看到我上面的更新。 – Jake 2010-03-26 21:05:20

0

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

+0

嗯,这是一种耻辱的方式,因为它都是WCF和MSMQ开箱即用的。 – krisdyson 2010-03-19 11:00:17