2

NServiceBus 3 に問題があります。

エンドポイントにメッセージを送信しようとしています。メッセージ タイプとエンドポイントは、config で次のように設定されます。

<UnicastBusConfig>
    <MessageEndpointMappings>
        <add Messages="GatewayMessages.ProcessAttachmentCommand, GatewayMessages" Endpoint="Attachments"/>
    </MessageEndpointMappings>
</UnicastBusConfig>

エンドポイントの EndpointConfig.cs には、次の構成があります。

        Configure
            .With()
            .DefineEndpointName("Attachments")
            .DefaultBuilder()
            .DBSubcriptionStorage()
            .XmlSerializer()
            .FileShareDataBus(@"C:\Attachments\nservicebus\databus")
            .MsmqTransport()
            .UnicastBus()
            .LoadMessageHandlers()
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());

私はまた、でIMutateTransportMessages構成されたクラスを持っています

        Configure.Instance.Configurer.ConfigureComponent<TransportMessageCompressionMutator>(DependencyLifecycle.InstancePerCall);

私が得ている問題は、Bus.Send を ProcessAttachmentCommand で呼び出すと、エンドポイントが何も受信しないことです。エンドポイントが停止すると、エンドポイント キューにメッセージが表示されません。

MutateOutgoingのメソッドにブレークポイントがあるTransportMessageCompressionMutatorと、発信メッセージが表示されるため、 への呼び出しBus.Sendは問題ないように見えますが、エンドポイントに到達していないように見えます。

私が含めた構成以外に、メッセージの配信に影響を与える可能性のあるものはありますか? また、メッセージ レベルで、メッセージがどこに向けられているかを確認する方法はありますか?

私の NServiceBus ホストはエラーをログに記録しません。メッセージが消えているようです。一番紛らわしい!

4

1 に答える 1

3

これは、への変更によって引き起こされたエラーであることが判明しましたMessageEndpointMappings。私の質問に投稿したバージョンは、実際に使用されていたものではありません。これは実際のバージョンです:

<UnicastBusConfig>
    <MessageEndpointMappings>
        <add Messages="GatewayMessages.ProcessAttachmentCommand, GatewayMessages" Endpoint="Attachments"/>
        <add Messages="GatewayMessages" Endpoint="Services.Saga"/>
    </MessageEndpointMappings>
</UnicastBusConfig>

2つ目MessageEndpointMappingsは入っていて、NSBはその設定を使用して、GatewayMessagesアセンブリ内のすべてのメッセージクラスの宛先を決定していました。

ああ、ヒューマンエラー!

于 2012-05-30T15:51:41.007 に答える