在 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
}
}
我正在构建一个针对 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
}
}