【问题标题】:MSMQ Design QuestionMSMQ 设计问题
【发布时间】:2009-09-28 20:17:14
【问题描述】:

需要保留在 WCF 客户端和 WSE 2.0 Web 服务之间生成的消息。由于 Web 服务由第三方托管,我是否可以实施一种解决方案,让 WCF 客户端将消息持久化到 msmq 并让 Windows 服务间歇性地轮询队列以在 WSE 2.0 Web 服务上发送请求?如果请求不成功,消息将保留在队列中。

提前致谢。

【问题讨论】:

    标签: wcf msmq


    【解决方案1】:

    它应该可以工作。

    可能有点棘手的部分是当您从 MSMQ 中读取数据并将其发送到 WSE 2.0 服务时。

    • 开始交易
    • 从 MSMQ 中读取项目
    • 将其发送到 WSE 服务
    • 如果 WSE 服务返回 OK,则提交事务

    【讨论】:

      【解决方案2】:

      默认情况下,如果 MSMQ 服务重新启动,MSMQ 将不会在队列中保留消息。如果您希望消息保留在 MSMQ 中,即使机器重新启动等。您需要将队列创建为事务性队列(如果您使用 .NET 中默认的快速消息,这是真的,感谢 Igal 纠正此问题)。

      【讨论】:

      • 这是错误的。非事务性消息可以是持久消息或快速消息。如果它们是快速消息,那么您是对的。如果它们是持久的,那么即使在重新启动的情况下,它们也会在队列中持久存在。 .net 中的默认消息对象是 express,这可能会导致这种错误假设。
      • 我忘记了,根据 Igal 的评论更正了我的答案。
      猜你喜欢
      • 2012-07-17
      • 2012-08-05
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 2010-12-09
      • 2012-12-03
      • 2015-01-08
      相关资源
      最近更新 更多