发送消息时 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。
我已经使用 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。