【问题标题】:Is there an nServiceBus sample for Pub/Sub with WCF?是否有用于使用 WCF 的 Pub/Sub 的 nServiceBus 示例?
【发布时间】:2011-01-16 21:06:41
【问题描述】:

这是一种非常常见的模式,我发现它实施起来简直就是一场噩梦!

--

WcfIntegration 示例几乎是我正在寻找的,因为它通过 WCF 端点接收消息。但是,它自己接收消息。我想要一个单独的订阅者。

所以我要做的是合并 WcfIntegration 和 pub/sub 示例。

网站真正需要调用类库,然后调用发布者的 WCF 端点。

然后订阅者选择接收发布者发布的消息,并对其进行任何处理。

--

罗伯

【问题讨论】:

  • “使用 WCF”是什么意思——发布者和订阅者之间的通信是否将通过 WCF 完成?
  • 嗨 Udi,我已经编写了一个示例,如果您愿意,可以在您的示例中分发。我现在只是上传它,并将发布 d/l 链接。
  • 我应该提一下,其中有一个错误会阻止发布者接收消息 - 这是我无法解决的问题。

标签: nservicebus


【解决方案1】:
  • 你不应该需要接口IEventMessageService; NSB 会为您处理。
  • 在我的本地示例中,我将消息映射到自己。对你来说,这将是:

    <UnicastBusConfig><MessageEndpointMappings>
    <add Messages="MyMessages" Endpoint="MyPublisherInputQueue"/>
    </MessageEndpointMappings></UnicastBusConfig>
    
  • 您还需要将您的发布移动到实际的处理程序。现在,它只发生一次(在启动时):

    public void Handle(EventMessage message)    
    {
        bus.Publish(message);
        bus.Return((int)ErrorCodes.None);
    }
    
  • 确保您的基础架构已准备就绪,即队列是事务性的,并且 MSDTC 正在运行。

我敢打赌,由于没有映射,一旦调用该服务,它就不知道将消息放在哪里(它在内部调用Bus.Send())。我没有看订阅者,因为这似乎不是问题。

【讨论】:

  • 嗨,亚当。它们的 IEventMessageService 在 NSB 示例代码中,客户端需要它来调用 WCF 端点。 unicastbusconfig 可以设置为发送给自己。但是,处理程序会拾取每条消息并重新发布它 - 这意味着存在一个循环,并且一旦收到消息就会继续重新发布。
  • 另外,这是 NSB 示例提供的处理程序。还有其他我应该使用的吗?
【解决方案2】:

我终于让它在这里工作了:-

http://code.google.com/p/nservicebus-wcf-pubsub/downloads/list

欢迎任何人改进代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多