Dot-Net-Core
在 Azure Function 中啟用同步 IO
我正在建構一個 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。
任何幫助將不勝感激!
將環境變數設置
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 } }