Azure Function从.NET 3.1迁移到.NET 5时出现dotnet-isolated启动错误如何解决
排查步骤和修复方案
- 修复Program.cs的必要配置。.NET 5孤立工作进程模式的Azure Function必须调用
ConfigureFunctionsWorkerDefaults()方法完成工作进程基础配置,缺少该配置会导致工作进程无法和Azure Functions宿主建立通信,是本次报错的核心原因。修正后的代码如下:
static async Task Main(string[] args) { var host = new HostBuilder() .ConfigureFunctionsWorkerDefaults() // 新增这行必要配置 .ConfigureAppConfiguration(c => { c.AddCommandLine(args); }) .ConfigureServices(s => { s.AddLogging(); }) .Build(); await host.RunAsync(); }
- 移除host.json中的
Values节点。Values是local.settings.json专属的配置节点,在host.json中额外声明会引发运行时配置冲突,直接删除host.json中以下内容即可:
"Values": { "AzureWebJobsStorage": "HIDDEN", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" },
- 检查本地Azure Functions Core Tools版本。.NET 5孤立进程模式要求Core Tools版本不低于
3.0.3904,可在终端执行func --version查看版本,版本过低直接升级即可。 - 确认项目根目录下的global.json配置正确,需明确指定兼容的.NET 5 SDK版本,示例配置参考:
{ "sdk": { "version": "5.0.400", "rollForward": "latestFeature" } }
- 完成上述修改后,清理项目缓存:删除bin、obj文件夹,重新生成项目后再启动调试即可。
内容的提问来源于stack exchange,提问作者NOP-MOV
相关产品推荐
相关产品推荐

