I am using Azure service bus for messaging between my two .Net core Web API Applications. By using topicClient I am able to send the message to ABS. But however while using the subscription client to receive the message, I am facing this issue.
ProcessMessagesAsync - method is not firing until I give "Console.Read();". I cannot give this because I am using Web API.
How else, can I fire this ProcessMessagesAsync method - which read my message perfectly.
Thanks in advance.
public async Task GetMessageFromSubscription()
{
subscriptionClient = new SubscriptionClient(ServiceBusConnectionString, TopicName, SubscriptionName);
RegisterOnMessageHandlerAndReceiveMessages();
// Console.Read(); ------- Without this line
await subscriptionClient.CloseAsync();
}
public void RegisterOnMessageHandlerAndReceiveMessages()
{
var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandler);
subscriptionClient.RegisterMessageHandler(ProcessMessagesAsync, messageHandlerOptions);
}
private async Task ProcessMessagesAsync(Message message, CancellationToken token)
{
var messageBody = Encoding.UTF8.GetString(message.Body);
var serviceBusMessage = JsonConvert.DeserializeObject<WorkIntakeItem>(messageBody);
await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
}