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

时间:2015-06-10 07:52:01

标签: azure nservicebus nservicebus5

我有一个控制台应用程序,它使用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以 MyAssemblyName-MyMachineName.events 格式在Azure上创建新主题。

我们使用Azure Service Bus传输。

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

1 个答案:

答案 0 :(得分:1)

Azure servicebus不允许为具有相同名称的不同类型的多个实体命名,因此每个端点都定义了一个以端点名称命名的输入队列和一个带有&#39; .events&#39;的发布主题。追加。

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

您的映射文件实际上是说,所有类型为Messages.Response的消息/命令都应该发送到端点&#39; test1&#39;的输入队列,或者如果TheResponse是一个事件:请订阅发布端点&test;测试1&#39;