2017-07-04 1 views
1

J'ai mappé toutes les classes d'un assemblage. Lors du démarrage Rebus mentionne comme il se doit:Mappages d'événements mappés

Mapped MyNamespace.Events.EmailSend -> Rebus/Test/Input 

Mais je reçois une erreur lorsque je tente de soumettre un message à l'intérieur d'un gestionnaire, en utilisant le code ci-dessous:

await _bus.Send(new EmailSend 
{ 
    MyProperty = 1 
}).ConfigureAwait(false); 

J'ai essayé aussi avec .Reply() et .SendLocal(), mais cela ne m'aide pas à me débarrasser de l'erreur ci-dessous.

La trace de la pile:

Rebus.Retry.ErrorTracking.InMemErrorTracker WARN (Thread #10): Unhandled exception 1 while handling message with ID a2c3b234-f519-4d86-bec9-715b2045ef94: Rebus.Exceptions.RebusApplicationException: Message with ID a2c3b234-f519-4d86-bec9-715b2045ef94 and type MyNamespace.Events.EmailSend, MyAssembly.Messaging.Models could not be dispatched to any handlers 
at Rebus.Pipeline.Receive.DispatchIncomingMessageStep.<Process>d__1.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Rebus.Sagas.LoadSagaDataStep.<Process>d__7.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Rebus.Pipeline.Receive.ActivateHandlersStep.<Process>d__3.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Rebus.Pipeline.Receive.DeserializeIncomingMessageStep.<Process>d__2.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Rebus.Retry.Simple.SimpleRetryStrategyStep.<DispatchWithTrackerIdentifier>d__7.MoveNext() 

Répondre

1

La première ligne dit vraiment tout:

Rebus.Retry.ErrorTracking.InMemErrorTracker WARN (Thread #10): Unhandled exception 1 while handling message with ID a2c3b234-f519-4d86-bec9-715b2045ef94: Rebus.Exceptions.RebusApplicationException: Message with ID a2c3b234-f519-4d86-bec9-715b2045ef94 and type MyNamespace.Events.EmailSend, MyAssembly.Messaging.Models could not be dispatched to any handlers 

attention à la dernière partie:

Message with ID a2c3b234-f519-4d86-bec9-715b2045ef94 and type MyNamespace.Events.EmailSend, MyAssembly.Messaging.Models could not be dispatched to any handlers 

Cela signifie que Rebus ne pouvait pas trouver un gestionnaire pour le message, c'est-à-dire une implémentation de IHandleMessages<EmailSend>.

Si vous utilisez un conteneur IoC, ce peut être un signe que, bien que vous ayez enregistré le type de gestionnaire correctement, l'une de ses dépendances n'a pas pu être résolue.

Si vous n'avez pas enregistré le gestionnaire: Je pense qu'il est assez évident alors :)

0

Le _bus.Send() a été appelé avec .ConfigureAwait (vrai), semble cela doit être « false » lors de la présentation un message du bus.

Oh et la classe de gestionnaire était interne.

Devinez un de ceux qui étaient le vrai problème - ou une combinaison ...