隔离的Azure函数在使用“CreatedAtRouteResult”时抛出InternalServerError并且异常未被捕获,但适用于“CreatedResult”

问题描述 投票:0回答:1

我正在尝试将我的 Azure 函数迁移到独立函数,并按照 Microsoft 的说明进行操作。 https://learn.microsoft.com/en-us/azure/azure-functions/migrate-dotnet-to-isolated-model?tabs=net8

进行必要的代码和包更改后,当我测试函数触发器时,带有“CreatedAtRouteResult”的触发器端点在邮递员上失败并显示“500 InternalServerError”,并且 任何 TRY CATCH 块都没有捕获异常。 在迁移到独立函数之前,我能够在响应的位置标头中获取完整的路由或 Url,如下面的屏幕截图所示。

responseObject == null ? (IActionResult)new BadRequestResult()
: new CreatedAtRouteResult(
"GetEndpointName",
new { param1, param2 = param2value },
responseObject);

我在运行时遇到以下错误(附截图)

我尝试将其更改为“CreatedResult”,它工作正常,但这会迫使我手动在响应中包含位置标头,而我不想这样做。

我试过这个:

responseObject == null ? (IActionResult)new BadRequestResult()
: new CreatedResult(
"GetEndpointRouteUrl",
responseObject);

这是我的 Program.cs 文件

请指导我,提前谢谢!

.net-core routes azure-functions azure-functions-isolated
1个回答
0
投票

它工作正常,但这会迫使我手动在响应中包含位置标头,而我不想这样做。

是的,据我所知,在独立函数中,

CreatedAtRouteResult
给出了例外,因为您不需要位置标头,但是当您使用
CreatedResult
时,它需要给出位置标头:

enter image description here

我使用的代码与您类似:

return new CreatedResult("testendpointurl", responseObject);

输出:

enter image description here

如果您仍然不确定,那么我建议您提出支持请求。

© www.soinside.com 2019 - 2024. All rights reserved.