Интерфейс HealthCheck не может получить данные при развертывании с использованием Azure Dev Spaces - PullRequest
0 голосов
/ 19 января 2020

Я разработал asp. net ядро ​​3.1 на основе веб-API и реализовал HealthCheck и HealthCheckUI на основе документации, доступной по адресу: https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks

Перед его реализацией в В исходном проекте я разработал ПО C, и он работал нормально, как и ожидалось.

Теперь я попытался сделать то же самое в исходном проекте, использующем Azure службы Kubernetes и развернутом в Azure Dev Пробелы.

Вот мой код:

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddCustomHealthChecks(Configuration);
}

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
        app.UseEndpoints(builder =>
        {
            builder.MapHealthChecks("/health", new HealthCheckOptions()
            {AllowCachingResponses = false}).RequireCors(CorsPolicyName.AllowAny);
            builder.MapHealthChecks("/healthcheck", new HealthCheckOptions()
            {Predicate = _ => true, ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse}).RequireCors(CorsPolicyName.AllowAny);
        }    
        app.UseHealthChecksUI();
  }


public static IServiceCollection AddCustomHealthChecks(this IServiceCollection services, IConfiguration configuration)
{
    var cosmosDBServiceEndPoint = configuration.GetValue<string>("CosmosDBEndpoint");
    var cosmosDBAuthKeyOrResourceToken = configuration.GetValue<string>("CosmosDBAccessKey");
    var cosmosDBConnectionString = $"AccountEndpoint={cosmosDBServiceEndPoint};AccountKey={cosmosDBAuthKeyOrResourceToken};";
    var hcBuilder = services.AddHealthChecks();
    hcBuilder.AddCheck("self", () => HealthCheckResult.Healthy()).AddCosmosDb(connectionString: cosmosDBConnectionString, name: "CosmosDB-check", failureStatus: HealthStatus.Degraded, tags: new string[]{"cosmosdb"});


    services.AddHealthChecksUI();
    return services;
}

При развертывании вышеуказанного кода в Azure Dev Space I am получить следующую ошибку:

An exception occurred while iterating over the results of a query for context type 'HealthChecks.UI.Core.Data.HealthChecksDb'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'near "(": syntax error'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
         at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
         at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.AsyncQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()

Может кто-нибудь помочь мне узнать, как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...