2 votes

Les messages d'envoi du NServiceBus n'apparaissent pas au point de terminaison

J'ai un problème avec NServiceBus 3.

J'essaie d'envoyer des messages à un point de terminaison. Le type de message et le point de terminaison sont configurés dans la configuration comme suit

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

L'endpoint a, dans son EndpointConfig.cs, la configuration suivante :

        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());

J'ai aussi un IMutateTransportMessages configurée avec

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

Le problème que je rencontre est que lorsque j'appelle Bus.Send avec la commande ProcessAttachmentCommand, le point d'accès ne reçoit rien. Lorsque le point de terminaison est arrêté, aucun message n'apparaît dans la file d'attente du point de terminaison.

Avec un point d'arrêt dans le MutateOutgoing de la méthode TransportMessageCompressionMutator Je peux voir le message sortant, donc il semble que l'appel à Bus.Send est OK mais il ne semble pas aller vers le point final.

Y a-t-il autre chose que la configuration que j'ai incluse qui puisse influencer la livraison des messages ? Et y a-t-il un moyen, au niveau des messages, de voir où ils sont dirigés ?

Mon hôte NServiceBus n'enregistre aucune erreur, c'est comme si les messages disparaissaient. C'est très déroutant !

3voto

Matt Jones Points 2232

Il s'est avéré qu'il s'agissait d'une erreur causée par une modification de l'élément MessageEndpointMappings . La version que j'ai postée dans ma question n'est pas réellement celle qui était utilisée. C'est la version actuelle :

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

Le deuxième MessageEndpointMappings était entré et NSB utilisait cette configuration pour déterminer la destination de toutes les classes de messages au sein de l'organisation. GatewayMessages montage.

Ah, l'erreur humaine !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X