Что такое сборщик HealthCheck HostedService выдал ошибку: значение не может быть нулевым. иметь в виду?

Очевидно, что-то не может быть нулевым, но я не могу понять. У меня есть служба Windows, которая размещается самостоятельно и имеет конечную точку, которая возвращает HealthCheckResult. Затем у меня есть веб-приложение .Net Core, которое использует HealthChecks-UI. Однако, когда я запускаю оба приложения, Healthcheck-UI говорит, что моя служба находится в плохом состоянии, но в то же время я могу нажать URL-адрес моей службы Windows и получить работоспособный статус.

Когда я смотрю на вывод, я получаю -

Отправка HTTP-запроса GET {url}

Получен HTTP-ответ - ОК

Сборщик HealthCheck HostedService выдал ошибку: значение не может быть нулевым. (Параметр «источник»)

Для меня я получаю хороший ответ 200, но что-то не так. В идеале я бы использовал библиотеку HealthChecks в своем приложении, которое я хочу отслеживать, но я не могу, потому что это служба Windows. Вот почему я решил реализовать свой собственный и просто предоставить спокойную самостоятельную конечную точку. Я использую версии 3.1 HealthChecks-UI.

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
        services.AddHealthChecksUI()
            .AddInMemoryStorage();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting()
       .UseEndpoints(config => 
       {
           config.MapHealthChecksUI();
       });
}

AppSettings.json

{
   "HealthChecks-UI": {
      "HealthChecks": [
         {
            "Name", "Windows Service", "Uri": "{myRestfulEndpoint}"
         }
      ],
      "Webhooks": []
   }
}

person Brandon    schedule 04.01.2021    source источник


Ответы (1)


Предполагая, что вы используете AspNetCore.Diagnostics, проверьте эту проблему github (особенно этот комментарий). Похоже, у вас возникла та же проблема (не удалось найти файл конфигурации без установки HostDefaults.ContentRootKey в WebHostBuilder).

person Connor Low    schedule 04.01.2021
comment
Интересно. Это имело значение, но теперь вместо ошибки Value cannot be null я получаю ошибку Object not set to an instance. - person Brandon; 05.01.2021