0

我有一个控制台应用程序,它使用 NServiceBus 将消息发布到 Azure 主题。但是,NServiceBus 创建了一个名称不同的新主题,而不是我指定的主题。为什么是这样?

更多细节

我的消息配置如下所示。这意味着“TheResponse”类型的消息应该转到名称为“test1”的主题,对吗?

<UnicastBusConfig>
    <MessageEndpointMappings>

        <add Assembly="Messages" Type="Messages.TheResponse" Endpoint="test1"/>

    </MessageEndpointMappings>
</UnicastBusConfig>

<connectionStrings>
    <add name="NServiceBus/Transport"
        connectionString="Endpoint=sb://[my-namespace].servicebus.windows.net/;SharedSecretIssuer=[issuer];SharedSecretValue=[key]"></add>
</connectionStrings>

实际发生的情况是 NServiceBus 在 Azure 上以MyAssemblyName-MyMachineName.events的格式创建了一个新主题。

我们使用 Azure 服务总线传输。

如何让 NServiceBus 将事件发布到特定主题?我是否误解了 MessageEndpointMappings 的目的?

4

1 回答 1

1

Azure 服务总线不允许使用相同名称命名多个不同类型的实体,因此每个终结点都定义了一个以终结点名称命名的输入队列和一个附加了“.events”的发布主题。

您不能发布到特定主题,端点只能在其自己的主题上发布,订阅者可以决定收听特定端点。

您的映射文件实际上说,所有 Messages.TheResponse 类型的消息/命令都应该发送到端点“test1”的输入队列,或者如果 TheResponse 是一个事件:请订阅端点“test1”的发布主题

于 2015-06-11T17:08:02.380 回答