Azure functions &引用;检测到多线程执行";使用context.CallHttpAsyn时

Azure functions &引用;检测到多线程执行";使用context.CallHttpAsyn时,azure-functions,azure-durable-functions,Azure Functions,Azure Durable Functions,我有一个OrchestrationTrigger函数,它通过http请求调用另一个服务 [FunctionName("MyFunc")] public async Task RunOrchestrator( [OrchestrationTrigger] IDurableOrchestrationContext context, ILogger logger) { var req = new DurableHttpReque

我有一个OrchestrationTrigger函数,它通过http请求调用另一个服务

 [FunctionName("MyFunc")]
        public async Task RunOrchestrator(
        [OrchestrationTrigger] IDurableOrchestrationContext context,
        ILogger logger)
    {
        var req = new DurableHttpRequest(HttpMethod.Post, _uri, headers, jsonBody);
        var res = await context.CallHttpAsync(req);
        // Do something
    }
但会出现以下错误:

检测到多线程执行。如果 orchestrator函数代码等待非由创建的任务 DurableOrchestrationContext方法。更多详细信息可在本手册中找到 文章


那里的官方文档建议使用
context.CallHttpAsync
——这正是我所做的。

IDurableCorchestrationContext
方法引发此异常时,意味着您使用的线程不是orchestrator线程调用了该方法。这里的问题不一定与
CallHttpAsync
调用有关,而是代码中的其他内容产生了一个新线程。在大多数情况下,这是由前一行代码中的非法
await
语句引起的,例如
await Task.Delay(1000)

如果您可以用完整的编排描述更新您的帖子,那么我们应该能够更容易地指出问题所在


也可以考虑使用它来主动地检测这些类型的编码错误(本周晚些时候将有一个新版本可以修复一系列已知的问题)。