Я использую служебную шину Azure для обмена сообщениями между двумя. Net основными приложениями Web API. С помощью topicClient я могу отправить сообщение в ABS. Но, тем не менее, при использовании клиента подписки для получения сообщения я сталкиваюсь с этой проблемой.
ProcessMessagesAsyn c - метод не запускается, пока я не дам "Console.Read ();", Я не могу дать это, потому что я использую Web API.
Как еще, я могу запустить этот ProcessMessagesAsyn c метод - который отлично читает мое сообщение.
Заранее спасибо.
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);
}