显然有些东西不能为空——但我想不通。我有一个自托管的 Windows 服务,并且有一个返回HealthCheckResult
. 然后我有一个 .Net Core Web 应用程序,它使用HealthChecks-UI
. 但是,当我启动两个应用程序时,healthcheck-ui 说我的服务处于错误状态,但同时我可以点击我的 windows 服务上的 url 并获得健康状态。
当我查看输出时,我得到 -
发送 HTTP 请求 GET {url}
收到 HTTP 响应 - 好的
HealthCheck 收集器 HostedService 抛出错误:值不能为空。(参数“来源”)
对我来说,我得到了很好的 200 响应,但有些事情失败了。理想情况下,我会HealthChecks
在我的应用程序中使用我想要监控的库,但我不能,因为它是 Windows 服务。这就是为什么我选择实现自己的并且只公开一个安静的、自托管的端点。我正在使用 3.1 版本HealthChecks-UI
。
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddHealthChecksUI()
.AddInMemoryStorage();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting()
.UseEndpoints(config =>
{
config.MapHealthChecksUI();
});
}
应用设置.json
{
"HealthChecks-UI": {
"HealthChecks": [
{
"Name", "Windows Service", "Uri": "{myRestfulEndpoint}"
}
],
"Webhooks": []
}
}