Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Azure服务总线在我发送消息时未发生任何事情_.net_Azure_Azureservicebus_Azure Servicebus Queues - Fatal编程技术网

.net Azure服务总线在我发送消息时未发生任何事情

.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

我已经使用Microsoft的Azure Service Bus文档作为模板设置了一个Azure Service Bus和一个类。当我尝试运行我的代码时,什么都没有发生。没有消息发送到服务总线。我尝试用不正确的队列名称和连接字符串来破坏它,甚至没有得到一个错误。我不熟悉异步编程,所以可能没有正确地实现我的任务

在此处调用此方法:

    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();