Очевидно, что-то не может быть нулевым, но я не могу понять. У меня есть служба 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": []
}
}