我正在尝试使用新的ASP.NET Core 2.2 健康检查功能。
在这篇链接中的 .net 博客中,它展示了一个例子:
public void ConfigureServices(IServiceCollection services)
{
//...
services
.AddHealthChecks()
.AddCheck(new SqlConnectionHealthCheck("MyDatabase", Configuration["ConnectionStrings:DefaultConnection"]));
//...
}
public void Configure(IApplicationBuilder app)
{
app.UseHealthChecks("/healthz");
}
我可以添加实现Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck
接口的自定义检查。但由于我需要提供一个实例而不是一个类型给AddCheck
方法,并且它需要在ConfigureServices
方法内运行,所以我无法在自定义检查程序中注入任何依赖项。
有没有办法绕过这个问题?
services.AddSingleton<IHealthCheck, GCInfoHealthCheck>();
进行注册。也许这已经在2.2的预览版中起作用了。 - Dirk