7

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

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

我得到的错误信息是:

发生了未处理的主机错误。

Microsoft.AspNetCore.Server.Kestrel.Core:不允许同步操作。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true。

任何帮助将不胜感激!

4

2 回答 2

14

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

于 2019-12-17T19:42:55.267 回答
0

为什么错误:

未启用同步 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
      }
    }
于 2021-11-15T15:50:44.490 回答