ASP.NET Core 3.1 - пользовательский интерфейс проверки работоспособности не работает

Я разработал приложение MVC ASP.NET Core 3.1 с настраиваемой проверкой работоспособности. Он отлично работает, как показано ниже.

введите здесь описание изображения

Однако пользовательский интерфейс всегда пуст, поскольку / health-api всегда возвращает пустой массив. введите здесь описание изображения

введите здесь описание изображения

Он находится в приложении ASP.NET 3.1 Core, которое можно найти по адресу https://github.com/prawin2k/HealhCheckMVC/tree/master/HealhCheckMVC

Версия .NET Core - версия 3.1 (MVC) Healthchecks - Последняя операционная система: Windows Server 2016 Другие: Visual Studio 2019


person Prawin    schedule 24.05.2020    source источник


Ответы (1)


В моем случае сам пользовательский интерфейс проверки работоспособности не запускает и не вызывает сбой приложения веб-API .net core 3.1.

Сообщение об ошибке: Невозможно создать некоторые службы (Ошибка при проверке дескриптора службы ServiceType: HealthChecks.UI.Core.Notifications.IHealthCheckFailureNotifier Lifetime: Scoped ImplementationType: HealthChecks.UI.Core .Notifications.WebHookFailureNotifier: не удалось разрешить службу для типа HealthChecks.UI.Core.Data.HealthChecksDb при попытке активировать HealthChecks.UI.Core.Notifications.WebHookFailureNotifier.)

Исправление: добавьте любого поставщика хранилища пользовательского интерфейса. В моем случае я выбрал AddInMemoryStorage ()

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    ...
    
    services.AddHealthChecks() 
        .AddDbContextCheck<PollDbContext>() //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
}
person hpsanampudi    schedule 24.07.2020