.net Azure服务总线在我发送消息时未发生任何事情
我已经使用Microsoft的Azure Service Bus文档作为模板设置了一个Azure Service Bus和一个类。当我尝试运行我的代码时,什么都没有发生。没有消息发送到服务总线。我尝试用不正确的队列名称和连接字符串来破坏它,甚至没有得到一个错误。我不熟悉异步编程,所以可能没有正确地实现我的任务 在此处调用此方法:.net Azure服务总线在我发送消息时未发生任何事情,.net,azure,azureservicebus,azure-servicebus-queues,.net,Azure,Azureservicebus,Azure Servicebus Queues,我已经使用Microsoft的Azure Service Bus文档作为模板设置了一个Azure Service Bus和一个类。当我尝试运行我的代码时,什么都没有发生。没有消息发送到服务总线。我尝试用不正确的队列名称和连接字符串来破坏它,甚至没有得到一个错误。我不熟悉异步编程,所以可能没有正确地实现我的任务 在此处调用此方法: private void ProcessPerformanceContributionFeed(string[] args, string batchRunId
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()}"));
到
你的问题应该得到解决
关于Task.Wait的更多信息可以在这里找到:。为什么不告诉他们删除
Task.Run
并调用AzureServiceBusHelper.SendMessageAsync($”性能贡献开始于{DateTime.Now.ToString()}”).GetAwaiter().GetResult()代码>?将异步方法保存在Task.Run
中有什么好处?@Andy-或者完全异步/await:)@Andy如果我尝试了该方法,我会收到一条警告,上面写着“.NET建议使用await,否则代码可能会运行到竞争对手”。我之所以不能使整个过程异步,是因为这是一个由许多进程组成的系统中的一个微进程,而这些进程不是为异步设置的。现在,我只想使用服务总线来测试这个过程。
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();