【问题标题】:Why is nservicebus ignoring my subscription message?为什么 nservicebus 会忽略我的订阅消息?
【发布时间】:2011-10-28 21:02:31
【问题描述】:

我有两个简单的控制台应用程序来集成 nservicebus。一个是发布者,另一个是订阅者。该案例中的订阅者还通过Send() 从另一个 Web 应用程序接收其他消息。当我在我的开发环境中本地运行它们时,没有问题,一切都按预期工作。我可以从 Web 应用程序发送消息并在我的“订阅者”上接收它们,也可以在我的订阅者上接收发布的消息。

但是,当部署到 Server 2008 R2 时,订阅者会向发布者 StatusQueue 发送一条初始消息,其中包含以下内容:

<?xml version="1.0"?>
<Messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.net/NServiceBus.Unicast.Transport">
    <CompletionMessage>
        <ErrorCode>0</ErrorCode>
    </CompletionMessage>
</Messages>

我认为这只是最初的“我想订阅您发布的消息类型的消息。*”。此消息仅位于队列中,并且永远不会被发布者拾取。

发布者的配置:

<MsmqSubscriptionStorageConfig 
    Queue="StatusQueueSubscriptions" />

    <MsmqTransportConfig
        InputQueue="StatusQueue"
        ErrorQueue="StatusError"
        NumberOfWorkerThreads="1"
        MaxRetries="5"/>

订阅者的配置:

<MsmqTransportConfig
    InputQueue="AppsInputQueue"
    ErrorQueue="AppsError"
    NumberOfWorkerThreads="1"
    MaxRetries="5"/>

  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="Messages" Endpoint="StatusQueue"/>
    </MessageEndpointMappings>
  </UnicastBusConfig>

【问题讨论】:

    标签: c# msmq nservicebus windows-server-2008-r2


    【解决方案1】:

    您的订阅被忽略的可能原因是发给发布者的传入消息与您的订阅中定义的类型不匹配。

    因此,当发布者收到消息时,它将根据其中包含的订阅对其进行评估,并且找不到匹配项,因此不会向您的订阅者发送任何消息。

    这可能是因为 NServiceBus 中的消息类型不仅由程序集/类型名称定义,还由程序集版本和公钥令牌定义。

    检查发布者和订阅者持有的消息程序集的版本/PK 令牌,并确保它们完全匹配。

    更新

    好的,听起来您输入队列的权限在某种程度上阻止了您的发布者服务帐户读取消息。尝试完全控制服务帐号。

    另外,您是否检查了日志中的默认日志记录位置是否存在错误? (C:\Users(用户名)\AppData\Local\Temp)

    【讨论】:

    • 但是,发布者甚至不会拉取队列的消息并将其移动到错误或任何东西。它就在那里。
    • 您是使用 MSMQ 作为订阅存储还是 SQL 服务器?
    • 因此,当您使用 MSMQ 时,订阅消息不会从队列中取出。他们被关在那里。如果您使用的是 SQL Server,订阅将被移入数据库并从队列中删除。
    • 好吧,在本地,订阅消息从输入队列中取出并放入订阅队列中......在测试服务器上,它们只是坐在输入队列中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    相关资源
    最近更新 更多