
本文共 3505 字,大约阅读时间需要 11 分钟。
.NET Core������������������������������������������������������������������.NET Core API���������������������������������������������������������������������DbContext������SQL Server������������������������������������������������������������������������������������������������
���ASP.NET Core���������������������
��������������������������������������������������������� Microsoft.AspNetCore.Diagnostics.HealthChecks
���
���������������ConfigureServices
���������������������������������������������
public void ConfigureServices(IServiceCollection services){ services.AddHealthChecks(); services.AddControllers();}
������������Configure
������������������������:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapHealthChecks("/health"); });}
������������������������������������������������������ /health, ���������������������������
HealthCheckService
.NET Core���������������HealthCheckService���������������������������������������������������������������������������������
public class HealthController : ControllerBase{ private readonly ILogger_logger; private readonly HealthCheckService _healthCheckService; public HealthController(ILogger logger, HealthCheckService healthCheckService) { _healthCheckService = healthCheckService; _logger = logger; } [HttpGet] public async Task Get() { var report = await _healthCheckService.CheckHealthAsync(); return report.Status == HealthStatus.Healthy ? Ok(report) : StatusCode((int)HttpStatusCode.ServiceUnavailable, report); }}
������������������������������/health���������������������������������
���������������������������������������������������������
EntityFramework Core ������������
���������������������������Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore
������������������������
������������������������������������������������������������������
public void ConfigureServices(IServiceCollection services){ services.AddControllers(); services.AddApiVersioning();}
������������������������������������ /health ���������������������������
IHealthCheck
������������������������������������������������������������������������������������������ IHealthCheck ���������������������������������������������������
public class ApiHealthCheck : IHealthCheck{ private readonly IHttpClientFactory _httpClientFactory; public ApiHealthCheck(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory; } public async TaskCheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) { using (var httpClient = _httpClientFactory.CreateClient()) { var response = await httpClient.GetAsync("https://your-api-service.endpoint"); if (response.IsSuccessStatusCode) { return HealthCheckResult.Healthy($"API is running."); } return HealthCheckResult.Unhealthy("API is not running"); } }}
���������������������������
public void ConfigureServices(IServiceCollection services){ services.AddHealthChecks() .AddDbContextCheck() .AddCheck ("ApiHealth"); services.AddControllers();}
������������������������������ /health,���������������
������������: Anuraj
���������������
发表评论
最新留言
关于作者
