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

#.net #.net-core #health-check

#.net #.net-core #проверка работоспособности

Вопрос:

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

Когда я смотрю на результат, я получаю —

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

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

Сборщик HostedService для проверки работоспособности выдал ошибку: значение не может быть нулевым. (Параметр ‘source’)

Для меня я получаю хороший ответ 200, но что-то не получается. В идеале я бы использовал HealthChecks библиотеку в своем приложении, которую я хочу отслеживать, но я не могу, потому что это служба Windows. Вот почему я решил реализовать свой собственный и просто предоставить restful, автономную конечную точку. Я использую версии 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": []
   }
}
 

Ответ №1:

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

Комментарии:

1. Интересно. Это действительно имело значение, но теперь вместо получения Value cannot be null ошибки я получаю Object not set to an instance сообщение об ошибке.