Blazor健康检查本地正常,部署至Azure应用服务报错求助
问题
我有一个Blazor Interactive Server应用,已按如下方式配置健康检查:
builder.Services.AddHealthChecks() .AddDbContextCheck<TrackingDbContext>("App Database") .AddDbContextCheck<UserDbContext>("Identity Database"); app.MapHealthChecks("health", new HealthCheckOptions { ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }).AllowAnonymous();
在本地使用Visual Studio集成应用服务器运行时,访问https://localhost:7229/health可获取包含各项检查状态的JSON输出。
但将同一应用部署至Azure应用服务后,访问https://ohana.tradewindsstudios.us/health出现如下错误:
Error. An error occurred while processing your request. Request ID: 00-f4dd263c9fd8791cf7c9dda48954031a-09ba2674b6a1313b-00
请问我在哪里可以查看该错误的详细信息?以及是否需要在应用服务中进行某些设置才能使其正常工作?
解决方案
一、查看详细错误信息的途径
- Azure应用服务日志流
登录Azure门户进入目标应用服务,在左侧「监控」分类下打开「日志流」,可实时查看应用运行时抛出的错误细节;也可在「日志」页面用Kusto查询定位指定请求ID的日志,示例:AppServiceConsoleLogs | where RequestId contains "00-f4dd263c9fd8791cf7c9dda48954031a-09ba2674b6a1313b-00" - Kudu调试控制台
打开应用服务的「高级工具」>「Kudu」,进入「调试控制台」>「网站/wwwroot」,如果应用配置了日志框架(如Serilog),可直接查看生成的日志文件获取详细错误。 - 启用详细错误页面
在应用服务「配置」>「常规设置」中开启「详细错误消息」,此时访问/health端点会显示具体异常信息(生产环境建议用完关闭,避免泄露敏感内容)。
二、Azure应用服务需确认的设置
- 数据库连接与权限
检查「配置」>「连接字符串」中是否正确配置了TrackingDbContext和UserDbContext对应的字符串;同时确认Azure SQL数据库的防火墙规则已允许Azure服务访问(在数据库的「防火墙和虚拟网络」中勾选「允许Azure服务和资源访问此服务器」)。 - 认证排除规则
如果应用服务启用了身份验证功能,需确保/health端点被排除在强制认证之外,避免匿名访问被拦截。 - 运行时版本匹配
在「配置」>「常规设置」中确认.NET运行时版本与本地开发环境一致,避免版本不兼容引发错误。
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

