You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core HealthCheck中间件是否影响Web API性能及是否每次请求都执行?

ASP.NET Core HealthCheck 中间件常见问题解答

问题1:由于在启动时添加了HealthCheck(),它是否会在HTTP请求管道处理每个请求时都被调用?

不会。HealthCheck 中间件仅会在请求特定健康检查端点(默认路径为/health,支持自定义配置)时,才会执行注册的健康检查逻辑。普通的API业务请求不会触发健康检查,它不会对所有请求进行拦截处理。

问题2:HealthCheck()中间件是否会引发性能问题?

正常使用场景下不会造成明显的性能损耗,但需要关注以下几点来避免潜在问题:

  • 健康检查的性能开销取决于你添加的检查类型:比如你示例中的SQL Server连接检查,每次触发时会尝试建立数据库连接验证状态,若该端点被频繁调用,可能会给数据库带来微小的额外压力。
  • 建议通过配置定时自动检查(例如结合AddHealthChecksUI设置定时任务),而非让外部服务频繁请求健康检查端点,减少不必要的资源消耗。
  • 可为单个健康检查设置超时时间,避免某个耗时较长的检查拖慢整个健康响应的返回速度。

示例代码

public void ConfigureServices(IServiceCollection services)
{
    //...
    // 注册健康检查所需服务
    services.AddHealthChecks()
        // 添加SQL Server数据库健康检查
        .AddCheck(
            "OrderingDB-check",
            new SqlConnectionHealthCheck(Configuration["ConnectionString"]),
            HealthStatus.Unhealthy,
            new string[] { "orderingdb" });
}

内容的提问来源于stack exchange,提问作者Ramakrishna.p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:15:09