当前位置: 首页 > 知识库问答 >
问题:

在.NET 5中将IActionResult与Azure函数一起使用?

訾稳
2023-03-14

在将我的Azure Functions项目迁移到.NET5之后,它已经开始在一个奇怪的包装类中包装我的响应。

例如,考虑以下endpoint:

public record Response(string SomeValue);

[Function("Get")]
public async Task<IActionResult> Get(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "get-something")]
    HttpRequestData request)
{
    return new OkObjectResult(new Response("hello world"));
}

之前,它会返回:

{
    "someValue": "hello world"
}

但现在,它又回来了:

{
  "Value": {
    "SomeValue": "hello world"
  },
  "Formatters": [],
  "ContentTypes": [],
  "DeclaredType": null,
  "StatusCode": 200
}

我知道这一定是因为它只是尝试序列化对象结果,但我找不到任何文档说明这在.NET5中应该如何工作。

我的主要功能目前看起来是这样的:

public static async Task Main()
{
    var host = new HostBuilder()
        .ConfigureFunctionsWorkerDefaults(x => 
            x.UseDefaultWorkerMiddleware())
        .ConfigureAppConfiguration((_, builder) => builder
            .AddJsonFile("local.settings.json", true)
            .Build())
        .ConfigureServices(ConfigureServices)
        .Build();

    await host.RunAsync();
}

我的项目位于这里,以防有人感兴趣:https://github.com/sponsorkit/sponsorkit.io

目前,我的.NET5工作是在一个名为feature/signup-flow的分支上。

共有1个答案

朱皓
2023-03-14

在.NET 5中将IActionResult与Azure函数一起使用?

在.NET 5中,不能使用Azure函数返回IActionResult。或者更一般地,您不能使用隔离流程模型使用Azure函数返回IActionResult。文件引用:

对于HTTP触发器,必须使用HttpRequestData和HttpReponseData来访问请求和响应数据。这是因为在进程外运行时,您没有访问原始HTTP请求和响应对象的权限。

您需要返回HttpResponseData而不是IActionResult。这里是示例代码。

 类似资料:
  • 问题内容: 我想确保数据库中是否存在临时表。 我尝试使用函数,但似乎无法将其用于临时表。 我该如何解决这个问题? 问题答案: 使用 在另一个数据库的上下文中运行时获取临时表的ID。

  • 问题内容: 我正在尝试运行SQL查询以获取四个随机项。由于表中product_filter有多个toupleproduct我必须使用DISTINCTin SELECT,所以出现此错误: 对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中 但是,如果我RANDOM()输入了SELECT它,将会避免DISTINCT结果。 有人知道如何DISTINCT与RANDOM()功能一

  • 本文向大家介绍R将匿名函数与apply一起使用,包括了R将匿名函数与apply一起使用的使用技巧和注意事项,需要的朋友参考一下 示例 apply 用于在数组或矩阵的边界上评估函数(可能是匿名函数)。 让我们使用iris数据集来说明这个想法。该iris数据集具有来自3个物种的150种花朵的测量值。让我们看看该数据集的结构: 现在,假设您想知道每个变量的平均值。解决此问题的一种方法可能是使用for循环

  • 升级到. NET5 for Azure Function后,此签名会引发以下异常。 Bash我已经按照留档https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-grid-trigger?tabs=csharp执行了 系统。NotSupportedException:“不支持对没有无参数构造函数

  • 问题内容: 这是我尝试在其上使用该函数的循环: 有办法吗?如果不是参数,那将是微不足道的,但是我不确定如何处理。 问题答案: 用途: 创建一个新的可调用对象,除了传递给该新的可调用对象的内容之外,该参数还将对包装的函数应用所有参数(包括关键字参数)。

  • 我正在进行一个项目,在该项目中,我使用firebase函数中的express来运行使用手柄的服务器端渲染页面,一切都很正常,但当我使用firestore admin sdk时,我遇到以下错误: 我在函数/index.js文件中使用此代码 函数工作正常,但尝试const db=admin时。firestore()给了我一个错误。我还尝试了函数和firestore的模拟器,但仍然得到了相同的错误 请帮