发送消息时 Azure 服务总线没有任何反应

Azure Service Bus Nothing Happens When I Send Message

我已经使用 Microsoft 的 Azure 服务总线文档作为模板设置了 Azure 服务总线和 class。当我尝试 运行 我的代码没有任何反应。没有消息发送到服务总线。我尝试用不正确的队列名称和连接字符串来破坏它,甚至没有收到错误。我是异步编程的新手,所以我可能没有正确执行我的任务。

    public static async Task SendMessageAsync(string messageToSend)
    {
        // create a sender Bus Client
        ServiceBusClient client = new ServiceBusClient(connectionString);
        
        // create a sender for the queue.
        ServiceBusSender sender = client.CreateSender(queueName);

        // create a message that we can send. 
        ServiceBusMessage message = new ServiceBusMessage(messageToSend);

        // send the message
        await sender.SendMessageAsync(message);
        Console.WriteLine($"Sent a single message to the queue: {queueName}");

        await client.DisposeAsync();            
    }

在此处调用此方法:

    private void ProcessPerformanceContributionFeed(string[] args, string batchRunId)
    {
        
        var task1 = Task.Run(async() =>  await AzureServiceBusHelper.SendMessageAsync($"Performance Contribution Started at {DateTime.Now.ToString()}"));

任务运行(我认为?)没有任何错误或任何消息被发送到服务总线。

我相信您 运行 陷入这个问题是因为您没有等待任务完成。

请更改以下代码行:

var task1 = Task.Run(async() =>  await AzureServiceBusHelper.SendMessageAsync($"Performance Contribution Started at {DateTime.Now.ToString()}"));

var task1 = Task.Run(async() =>  await AzureServiceBusHelper.SendMessageAsync($"Performance Contribution Started at {DateTime.Now.ToString()}"));
task1.Wait();

你的问题应该已经解决了。

有关 Task.Wait 的更多信息可在此处找到:https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.wait?view=net-5.0