【问题标题】:How to configure MessageEndpointMapping by namespace in NServiceBus如何在 NServiceBus 中按命名空间配置 MessageEndpointMapping
【发布时间】:2011-02-03 10:54:51
【问题描述】:

我正在尝试通过将消息从不同的命名空间发送到不同的端点来在我的 NServiceBus 配置中配置我的消息端点映射。

因此,我在 web.config 中配置了以下内容:

<MessageEndpointMappings>
    <add Messages="Company.Messages.Accounts" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Payments" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Cancellations" Endpoint="ServiceInput" />
    <add Messages="Company.Messages.Notifications" Endpoint="ServiceInput" />
</MessageEndpointMappings>

但是,当我的应用程序启动时,我收到以下异常:

Spring.Objects.PropertyAccessExceptionsException:PropertyAccessExceptionsException(1 个错误);嵌套的 PropertyAccessExceptions 是: [Spring.Core.TypeMismatchException:无法将类型 [System.Collections.Hashtable] 的属性值转换为属性“MessageOwners”所需的类型 [System.Collections.IDictionary]。,内部异常:System.ArgumentException:加载消息程序集时出现问题:公司.Messages.Payments ---> System.IO.FileNotFoundException:无法加载文件或程序集“Company.Messages.Payments”或其依赖项之一。该系统找不到指定的文件。 文件名:'Company.Messages.Payments'

我觉得有趣的是它似乎找到了 Company.Messages.Accounts 但在第二个配置行上失败了。我想也许它不喜欢让它们都去同一个端点,但是改变这个配置让它们去不同的端点并没有改变我收到的错误消息。

我做错了什么?不能按命名空间来分割消息吗(我所看到的只是按类型和程序集)?

谢谢, 史蒂夫

【问题讨论】:

    标签: msmq messaging nservicebus


    【解决方案1】:

    NSB 仅支持将程序集或单个类型映射到端点。不支持命名空间,我建议您将消息程序集拆分为每个端点的单独程序集。

    【讨论】:

    • 谢谢安德烈亚斯。 NServiceBus 电子邮件列表中的某个人建议这是可能的,但我似乎无法让它工作。感谢您的明确答复。 〜史蒂夫
    • 3.3.0 也增加了对命名空间的支持
    • 安德烈亚斯。您应该更新此答案以反映新的 API。也许是 doco 的链接
    【解决方案2】:

    根据此页面,您可以指定一个类型: http://docs.particular.net/nservicebus/messaging/message-owner

    可以使用其限定名称来配置特定类型:“namespace.type, assembly”。

    【讨论】:

    • 很高兴包含链接。我从未阅读过 pub sub 示例,因为我还不需要它,但是我还没有在文档中的其他任何地方看到那个小花絮。
    【解决方案3】:

    从 NServiceBus v3.3 起,命名空间可用于过滤消息映射

    http://docs.particular.net/nservicebus/messaging/message-owner

    【讨论】:

    • 也许 doco 还应该指出,如果我添加图像扩展名(在我的情况下为 *.dll),NServiceBus(我正在使用的版本是 4.7!)也会失败。很反直觉!
    • 我们在这里有注释:docs.particular.net/nservicebus/messaging/… 有什么想法可以让我们更清楚吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多