为什么 Azure 上的 NServiceBus 不使用我指定的终结点名称?

Why does NServiceBus on Azure not use my specified endpoint name?

我有一个控制台应用程序,它使用 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 的用途?

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

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

你的映射文件实际上说,所有 Messages.TheResponse 类型的 messages/commands 应该被发送到端点 'test1' 的输入队列,或者如果 TheResponse 是一个事件:请订阅端点 'test1'

的发布主题