Saltar al contenido

ASP.NET Core: error al intentar usar HealthChecks

Si encuentras algún detalle que no entiendes puedes dejarlo en los comentarios y haremos todo lo necesario de ayudarte rápidamente.

Solución:

Tendrá que configurar los servicios de infraestructura de comprobación de estado a través de la AddHealthChecks() método de extensión. Por ejemplo:

public void ConfigureServices(IServiceCollection services)

    services.AddHealthChecks();

Consulte también la documentación.

En mi caso, la interfaz de usuario de las comprobaciones de estado no se inicia y bloquea la aplicación de API web .net core 3.1.

Mensaje de error:Algunos servicios no se pueden construir (Error al validar el descriptor de servicio ‘ServiceType: HealthChecks.UI.Core.Notifications.IHealthCheckFailureNotifier Lifetime: Scoped ImplementationType: HealthChecks.UI.Core.Notifications.WebHookFailureNotifier’: No se puede resolver el servicio para el tipo ‘ HealthChecks.UI.Core.Data.HealthChecksDb’ al intentar activar ‘HealthChecks.UI.Core.Notifications.WebHookFailureNotifier’).

Arreglar: Agregue cualquier proveedor de almacenamiento de interfaz de usuario. En mi caso he elegido AddInMemoryStorage()

Inicio.cs

    public void ConfigureServices(IServiceCollection services)
    
        ...
        
        services.AddHealthChecks() 
            .AddDbContextCheck() //nuget: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore
            .AddApplicationInsightsPublisher(); //nuget: AspNetCore.HealthChecks.Publisher.ApplicationInsights
    
        services.AddHealthChecksUI() //nuget: AspNetCore.HealthChecks.UI
            .AddInMemoryStorage(); //nuget: AspNetCore.HealthChecks.UI.InMemory.Storage
            
        ...
    
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    
        ...
        
        app.UseHealthChecks("/healthcheck", new HealthCheckOptions
        
            Predicate = _ => true,
            ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse //nuget: AspNetCore.HealthChecks.UI.Client
        );
        
        //nuget: AspNetCore.HealthChecks.UI
        app.UseHealthChecksUI(options =>
        
            options.UIPath = "/healthchecks-ui";
            options.ApiPath = "/health-ui-api";
        );
        ...
    

appsettings.json

    "HealthChecks-UI": 
        "DisableMigrations": true,
        "HealthChecks": [
            
                "Name": "PollManager",
                "Uri": "/healthcheck"
            
        ],
        "Webhooks": [
            
                "Name": "",
                "Uri": "",
                "Payload": "",
                "RestoredPayload": ""
            
        ],
        "EvaluationTimeOnSeconds": 10,
        "MinimumSecondsBetweenFailureNotifications": 60,
        "MaximumExecutionHistoriesPerEndpoint": 15
    

Reseñas y valoraciones

Si tienes algún titubeo y forma de arreglar nuestro post te recomendamos añadir una explicación y con mucho placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *