在 Azure Function 中启用同步 IO

Enable Synchronous IO in Azure Function

我正在构建一个针对 netcoreapp3.0 的 HTTPTriggered Azure 函数,即 运行 一个 GraphQL .NET 服务器。 GraphQL .NET 要求将 AllowSynchronousIO 设置为 true,但我不知道如何为 Azure 函数执行此操作。我已经尝试实现自己的 Startup class 扩展 FunctionsStartup 并在 Configure 方法中添加以下代码但没有成功。

builder.Services
    .AddOptions<KestrelServerOptions>()
    .Configure<IConfiguration>((settings, configuration) =>
    {
        settings.AllowSynchronousIO = true;
        configuration.Bind(settings);
    });

我收到的错误信息是:

An unhandled host error has occurred.

Microsoft.AspNetCore.Server.Kestrel.Core: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.

如有任何帮助,我们将不胜感激!

将环境变量 FUNCTIONS_V2_COMPATIBILITY_MODE 设置为 true 似乎可以解决问题,请参阅 https://github.com/Azure/azure-functions-host/pull/5286

为什么报错:

未启用同步IO

如何修复:

编辑项目根文件夹中的“local.settings.json”文件 看起来像这样。 "FUNCTIONS_V2_COMPATIBILITY_MODE": "真"

   {
      "IsEncrypted": false,
      "Values": {
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        //Enable Synchronous IO
        "FUNCTIONS_V2_COMPATIBILITY_MODE": "true"
      },
      "Host": {
        "LocalHttpPort": 7071,
        "CORS": "*",
        "CORSCredentials": false
      }
    }