.NET Aspire发布后仪表板无法加载,显示未处理错误
.NET Aspire 发布后仪表板无法加载的排查方案
问题概况
本地运行.NET Aspire默认启动应用正常,但发布后访问仪表板加载失败,浏览器控制台报错:
Error: There was an unhandled exception on the current circuit, so this circuit will be terminated. For more details turn on detailed exceptions by setting 'DetailedErrors: true' in 'appSettings.Development.json' or set 'CircuitOptions.DetailedErrors'
第一步:开启详细错误日志定位根因
默认报错信息过于笼统,先开启详细错误输出:
- 方式1:修改配置文件
在appSettings.Development.json(生产环境用appSettings.json)中添加:
{ "DetailedErrors": true }
- 方式2:代码配置
在Program.cs中配置Blazor Circuit选项:
builder.Services.AddServerSideBlazor(options => { options.DetailedErrors = true; });
重新发布应用后访问,即可看到具体异常信息,这是解决问题的核心前提。
常见问题及对应解决方法
1. 仪表板依赖服务未正确部署
.NET Aspire仪表板依赖Aspire Dashboard Service,需确认:
- 部署环境已安装并运行Aspire Dashboard Service,或发布包中包含相关组件
- 配置文件
appsettings.json里的Aspire:Dashboard:Endpoint指向正确的服务地址(本地默认是http://localhost:18888,发布后需根据部署环境调整)
2. 跨域限制导致通信失败
若仪表板与后端服务部署在不同域名/端口,需配置跨域策略:
在Program.cs中添加:
builder.Services.AddCors(options => { options.AddPolicy("AllowDashboard", policy => { policy.WithOrigins("你的仪表板访问域名") .AllowAnyHeader() .AllowAnyMethod(); }); }); // 注册中间件时启用跨域 app.UseCors("AllowDashboard");
3. 部署环境配置缺失
- IIS部署注意:Blazor Server依赖WebSocket通信,需在IIS中启用WebSocket协议
- 文件权限:确保应用部署目录有读写权限,能正常读取配置、生成日志
4. .NET版本不兼容
确认部署环境安装的.NET Runtime版本与本地开发环境一致,比如.NET Aspire 8.0要求部署环境必须安装.NET 8.0 Runtime
内容的提问来源于stack exchange,提问作者Vivek Nuna
相关产品推荐
相关产品推荐

