在现代微服务架构和云原生应用开发中,ASP.NET Core健康检查已成为保障系统稳定运行的重要工具。通过集成健康检查UI,开发者可以直观地监控应用程序的运行状态、数据库连接、外部依赖等关键指标。本文将从零开始,详细讲解如何在你的 .NET Core 项目中添加并配置健康检查与可视化 UI,即使是编程新手也能轻松上手!

ASP.NET Core 内置了健康检查中间件(Health Checks),允许你定义一系列“探针”来验证应用及其依赖项(如数据库、缓存、第三方 API 等)是否正常工作。当所有检查通过时,应用返回 HTTP 200;任一失败则返回非 200 状态码,便于 Kubernetes、Docker 或负载均衡器自动处理故障。
而 健康检查UI 是一个开源的前端面板(由 Xabaril 团队维护),它能定时轮询多个服务的健康端点,并以图表和列表形式展示结果,极大提升运维效率。
首先,使用 .NET CLI 创建一个新 Web API 项目:
dotnet new webapi -n MyHealthCheckAppcd MyHealthCheckApp接着,安装必要的 NuGet 包:
dotnet add package Microsoft.Extensions.Diagnostics.HealthChecksdotnet add package AspNetCore.HealthChecks.UIdotnet add package AspNetCore.HealthChecks.UI.Clientdotnet add package AspNetCore.HealthChecks.SqlServer 然后,在 Program.cs 中注册健康检查服务:
using Microsoft.AspNetCore.Diagnostics.HealthChecks;var builder = WebApplication.CreateBuilder(args);// 添加健康检查服务builder.Services.AddHealthChecks() .AddCheck("Self", () => HealthCheckResult.Healthy("服务自身正常")) // 示例:添加 SQL Server 检查(请替换为你的连接字符串) .AddSqlServer( connectionString: "Server=localhost;Database=TestDB;Trusted_Connection=true;", name: "SQL Server", failureStatus: HealthStatus.Degraded, tags: new[] { "db" });// 添加健康检查 UI 服务builder.Services.AddHealthChecksUI(setupSettings: setup =>{ setup.AddHealthCheckEndpoint("My API", "/health");}).AddInMemoryStorage(); // 使用内存存储(生产环境建议用 SQL Server 或 Redis)var app = builder.Build();// 映射健康检查终结点app.MapHealthChecks("/health", new HealthCheckOptions{ ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse});// 映射健康检查 UIapp.MapHealthChecksUI();app.Run();运行项目:
dotnet run默认情况下,健康检查端点位于 http://localhost:5000/health,而 UI 面板位于 http://localhost:5000/healthchecks-ui。
打开浏览器访问 UI 地址,你将看到类似下图的监控面板,显示每个服务的健康状态、响应时间及历史记录。
你可以轻松添加更多检查项,例如 Redis、RabbitMQ、HTTP 依赖等。以下是一个自定义健康检查类的示例:
public class CustomDependencyHealthCheck : IHealthCheck{ public Task<HealthCheckResult> CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { // 模拟外部依赖调用 bool isHealthy = DateTime.UtcNow.Minute % 2 == 0; if (isHealthy) { return Task.FromResult(HealthCheckResult.Healthy("自定义依赖正常")); } return Task.FromResult(HealthCheckResult.Unhealthy("自定义依赖异常")); }}// 在 Program.cs 中注册builder.Services.AddHealthChecks() .AddCheck<CustomDependencyHealthCheck>("Custom Dependency");AddInMemoryStorage(),避免重启丢失数据。通过本文,你已经掌握了如何在 ASP.NET Core 应用中集成健康检查UI,实现对.NET Core监控和应用健康状态的可视化管理。这项技术不仅能提升系统可观测性,还能在 CI/CD 和容器编排中发挥关键作用。
赶快动手试试吧!如果你正在构建微服务或云原生应用,健康检查几乎是不可或缺的一环。记得关注我们的更多 .NET 教程,助你成为更高效的开发者!
本文由主机测评网于2025-12-12发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126728.html