0

我有一个 Azure Durable 功能,如下所示:

       [FunctionName("Function1_HttpStart")]
        public async Task<IActionResult> HttpStart(
        [HttpTrigger(AuthorizationLevel.Anonymous, "post")]
        HttpRequest req,
        [DurableClient] IDurableOrchestrationClient starter,
        ILogger log)
    {
        
        //code to get requestBodyContent from req hidden

        var instanceId = await starter.StartNewAsync("MyOtherFunction", requestBodyContent);

        return starter.CreateCheckStatusResponse(req, instanceId);
     }

在最后一行中,CreateCheckStatusResponse对 Azure 存储模拟器中预期的调用返回 HTTP 202,并且持久函数以预期结果执行。

当我在由函数容器和 Azurite 容器组成的 Docker 编排中运行相同的代码时,持久函数仍以预期结果执行, CreateCheckStatusResponse返回 HTTP 500。

我想了解为什么 HTTP 返回代码在 2 个不同的环境中表现不同。

AppInsights 没有显示任何问题。阅读文档,除非我们专门设置了第三个布尔参数,否则该方法不应该返回 500。

使用 .NETCore 3.1
Azure Functions V3

4

1 回答 1

0

所以我能够找到解决方案 - 问题不是蓝晶石,这与 OP 无关。
在 docker 中托管持久功能时会出现问题。
我在这篇文章中找到了答案。

只需添加以下配置:

WEBSITE_HOSTNAME=localhost:30042
于 2021-07-23T13:36:31.503 回答