Mon application tente de recevoir des événements d'un noeud final.
Si je m'abonne <>(), je vois explicitement un abonnement arriver sur le point de terminaison de publication. Si j'essaie d'obtenir le même résultat en configurant une convention, cela échoue.Les événements configurés par convention n'aboutissent pas à un abonnement
Qu'est-ce qui me manque?
Ma configuration ressemble à ceci:
public Subscriber(int maxConcurrency)
{
var pingEventType = typeof(IMyEvent);
var pingHandlerType = typeof(MyEventHandler);
var busConfiguration = new BusConfiguration();
busConfiguration.EndpointName("MyEndpointName");
busConfiguration.UseSerialization<JsonSerializer>();
busConfiguration.EnableInstallers();
busConfiguration.UsePersistence<NHibernatePersistence>();
busConfiguration
.UseTransport<SqlServerTransport>()
.CallbackReceiverMaxConcurrency(maxConcurrency);
busConfiguration.AssembliesToScan(AllAssemblies
.Matching("NServiceBus")
.And("ServiceControl")
.And(pingHandlerType.AssemblyQualifiedName)
.And(pingEventType.AssemblyQualifiedName));
busConfiguration
.Conventions()
.DefiningEventsAs(x => x.Namespace != null && x.Namespace == pingEventType.Namespace);
var container = new ContainerBuilder().Build();
busConfiguration.UseContainer<AutofacBuilder>(customizations =>
{
customizations.ExistingLifetimeScope(container);
});
_startableBus = Bus.Create(busConfiguration);
// Uncommenting below line results in subscription on the publishing endpoint
//_startableBus.Subscribe(pingEventType);
}
La documentation la plus pertinente et des exemples de code ne semble pas mentionner tout ce que je devrais faire https://docs.particular.net/nservicebus/messaging/conventions?version=core_5
Je suppose que vous devrez inclure les assemblys de messages dans l'analyse d'assemblage? –
Je pensais que j'étais avec la ligne '.And (pingEventType.AssemblyQualifiedName));' mais je l'ai fait mal. Mettez-le dans une réponse pour le futur moi et les autres –