I'm exploring the Rebus library. I implemented the Pub/Sub successfully in Microsoft.NET.Sdk.Worker project with FileSystem
transport. But I'm struggling to make it work with AzureServiceBus
. I have below configuration in Program.cs:
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) => {
services.AddLogging();
services.AddRebus(
(config, provider) => {
config
.Logging(l => l.Console())
.Routing(r => r.TypeBased().MapAssemblyOf<CreateNewReportMessage>(busConfig.MainQueue))
//.Transport(x => x.UseFileSystem(busConfig.FileSystemTransportBaseDirectory, busConfig.MainQueue))
//.Subscriptions(x => x.UseJsonFile(Path.Combine(busConfig.FileSystemTransportBaseDirectory, "rebus_subscriptions.json")))
.Transport(x => x.UseAzureServiceBus(busConfig.AzureSBConnectionString, busConfig.MainQueue).AutomaticallyRenewPeekLock());
return config;
},
onCreated: async bus => {
await bus.Subscribe<CreateNewReportMessage>();
}
);
services.AutoRegisterHandlersFromAssemblyOf<Program>();
})
.Build();
await host.RunAsync();
I'm getting below 400 Bad request error. The app is published as Azure WebJob.
INFO] [DBG] Rebus.AzureServiceBus.AzureServiceBusTransport (Thread #1): Registering subscription for topic "MyServiceBus/MyServiceBus.Messages.CreateNewReportMessage"
INFO] Successfully created bus instance RebusBus Rebus 1 (isDefaultBus: True)
INFO] Application started. Press Ctrl+C to shut down.
INFO] fail: Microsoft.Extensions.Hosting.Internal.Host[9]
INFO] BackgroundService failed
INFO] ---> Azure.RequestFailedException: The specified HTTP verb (GET) is not valid. To know more visit https://aka.ms/sbResourceMgrExceptions. . TrackingId:1808
INFO] Status: 400 (Bad Request)
INFO] --- End of inner exception stack trace ---
INFO] at Azure.Messaging.ServiceBus.Administration.HttpRequestAndResponse.ThrowIfRequestFailedAsync(Request request, Response response)
INFO] at Azure.Messaging.ServiceBus.Administration.HttpRequestAndResponse.SendHttpRequestAsync(Request request, CancellationToken cancellationToken)
INFO] at Azure.Messaging.ServiceBus.Administration.HttpRequestAndResponse.GetEntityAsync(String entityPath, String query, Boolean enrich, CancellationToken can
INFO] at Azure.Messaging.ServiceBus.Administration.ServiceBusAdministrationClient.TopicExistsAsync(String name, CancellationToken cancellationToken)
INFO] at Rebus.AzureServiceBus.AzureServiceBusTransport.EnsureTopicExists(String normalizedTopic)
INFO] at Rebus.AzureServiceBus.AzureServiceBusTransport.<>c__DisplayClass25_0.<<RegisterSubscriber>b__0>d.MoveNext()
INFO] --- End of stack trace from previous location ---
INFO] at Rebus.Internals.ExceptionIgnorant.Execute(Func`1 function, CancellationToken cancellationToken)
INFO] at Rebus.Internals.ExceptionIgnorant.Execute(Func`1 function, CancellationToken cancellationToken)
INFO] at Rebus.AzureServiceBus.AzureServiceBusTransport.RegisterSubscriber(String topic, String subscriberAddress)
INFO] at Rebus.Bus.RebusBus.InnerSubscribe(String topic)