.net - 当我发送消息时,Azure 服务总线没有任何反应
问题描述
我已经设置了一个 Azure 服务总线和一个使用 Microsoft 的 Azure 服务总线文档作为模板的类。当我尝试运行我的代码时,什么也没有发生。没有消息发送到服务总线。我尝试用不正确的队列名称和连接字符串来破坏它,甚至没有收到错误。我是异步编程的新手,所以也许我没有正确执行我的任务。
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();
你的问题应该得到解决。
More information on Task.Wait can be found here: https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.wait?view=net-5.0.
推荐阅读
- machine-learning - 在某些迭代后成本变为 NaN
- c - MPI_Get 不会在两个进程的缓冲区之间发送正确的元素
- compiler-errors - 读取前未设置 Firing_Delay
- javascript - VSCode 使用自定义 webpack 解析自动完成 javascript 导入的对象
- javascript - TypeError:_reactDom.default.createElement 不是函数
- flutter - Flutter firebase_admob 横幅仍然显示在每个屏幕上
- algorithm - 在不移动点的情况下将循环添加到最小生成树?
- python - 如何绘制按熊猫中的列名分组的箱线图?
- python-3.x - 如何在 Tkinter、Python 3.8 中创建文本 wiget
- arrays - 继续在 Google 表格中的各列中将公式增加 N 行