.NET 8 Blazor WebAssembly客户端program.cs未执行问题求助
.NET 8 Blazor WASM Program.cs 代码不执行问题的解决
问题根源
.NET 8 给 Blazor WebAssembly 默认启用了自动启动机制,直接跳过了传统Program.cs里的手动启动流程,导致你写的依赖注入注册、配置代码根本没机会运行,自然会出现服务注入失败的崩溃问题——不管是迁移项目还是新建项目,只要没适配这个变更都会踩坑。
解决步骤
第一步:关闭自动启动
打开wwwroot/index.html,找到Blazor的脚本标签,加上autostart="false"属性:<script src="_framework/blazor.webassembly.js" autostart="false"></script>第二步:手动触发启动
在刚才的脚本后面,加一段手动启动的JS代码:<script> Blazor.start(); </script>第三步:确认Program.cs的写法
保证你的Program.cs保留标准的启动逻辑,比如:var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); builder.RootComponents.Add<HeadOutlet>("head::after"); // 注册自定义服务 builder.Services.AddScoped<AppService>(); await builder.Build().RunAsync();
做完以上修改后重新编译运行,Program.cs里的代码就会正常执行,Counter页面的服务注入也能正常工作了。
内容的提问来源于stack exchange,提问作者Simon Bailey
相关产品推荐
相关产品推荐

