Dot Net Core Mongo Health Check ОШИБКА: новый MongoClient не может быть добавлен в словарь
У меня есть приложение веб-API, написанное на Dot Net Core 3.1, имеющее проверку работоспособности для MongoDB. Я использую Nuget AspNetCore.HealthChecks.MongoDb (2.2.2) для проверки работоспособности Mongo. Мы заметили, что наши производственные журналы переполнены ошибками, в которых говорится, что New MongoClient не может быть добавлен в словарь. Не могли бы вы помочь?
Вот код написан в старте для проверки работоспособности MongoDB,
public void ConfigureContainer(ServiceRegistry services)
{
services.AddHealthChecks()
.AddMongoDb(config.ConnectionStrings.MongoDbContext.ThrowIfNull("MongoDbContext"),
config.AppSettings.MongoDbName.ThrowIfNull("MongoDbName"), null, null, null);
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHealthChecks("/api/v1.0/health", new HealthCheckOptions()
{
ResponseWriter = WriteResponse
});
}
private static Task WriteResponse(HttpContext httpContext, HealthReport result)
{
httpContext.Response.ContentType = "application/json";
if (result.Status != HealthStatus.Healthy)
{
IReadOnlyDictionary<string, HealthReportEntry> healthResult = result.Entries;
if (healthResult != null)
{
string json = new JObject(healthResult.Select(pair =>
new JProperty(pair.Key, new JObject(
new JProperty("Status", pair.Value.Status.ToString()),
new JProperty("Description", pair.Value.Description?.ToString(CultureInfo.InvariantCulture)),
new JProperty("Exception", pair.Value.Exception?.ToString()
))))).ToString(Formatting.Indented);
Log.Error("Error: {json}", json);
return httpContext.Response.WriteAsync($"{result.Status.ToString()} {Environment.NewLine} {json}");
}
}
return httpContext.Response.WriteAsync(result.Status.ToString());
}