我正在使用 Azure 服务总线在我的两个 .Net 核心 Web API 应用程序之间进行消息传递。通过使用 topicClient,我可以将消息发送到 ABS。但是,在使用订阅客户端接收消息时,我遇到了这个问题。
ProcessMessagesAsync - 在我给出“Console.Read();”之前方法不会触发 . 我不能给出这个,因为我使用的是 Web API。
否则,我可以触发这个 ProcessMessagesAsync 方法- 它完美地阅读了我的消息。
提前致谢。
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);
}