私のアプリケーションはエンドポイントからイベントを受信しようとしています。
私がSubscribe <>()を明示的に指定すると、公開エンドポイントでサブスクリプションが受信されます。大会を構成して同じ結果を得ようとすると、失敗します。規則で設定されたイベントはサブスクリプションにはなりません
私には何が欠けていますか?
私の構成は次のようになります。
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);
}
最も関連性の高いドキュメントとサンプルコード私が何をすべき何かを言及していないようだhttps://docs.particular.net/nservicebus/messaging/conventions?version=core_5
メッセージアセンブリをアセンブリスキャンに含める必要があると思われますか? –
私は '.And(pingEventType.AssemblyQualifiedName));という行に書かれていると思っていましたが、間違っていました。将来の私と他の人のための答えに入れて –