EntityFrameworkCore.Cosmos preview 3 - ошибка не найдена - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь использовать новый пакет EntityFrameworkCore.Cosmos Preview 3 на веб-сайте ASP.NET Core, но я продолжаю получать сообщение об ошибке при попытке создать базу данных. Я не могу найти какую-либо документацию, чтобы дать мне представление о том, что является причиной ошибки.

В моем файле Startup.cs в методе ConfigureServices у меня есть следующий код:

// Configure EntityFramework - CosmosDB
services.AddDbContext<EFContext>(options => options.UseCosmos(
    authKeyOrResourceToken: ServiceFactory.GetDbKeySecret(_config, (_hosting.EnvironmentName != "LocalDev")),
    serviceEndPoint: _config.GetValue<string>("CosmosDb:Endpoint"),
    databaseName: _config.GetValue<string>("CosmosDb:DatabaseID")
));
EFContext efc = services.BuildServiceProvider().GetRequiredService<EFContext>();
efc.Database.EnsureCreatedAsync().Wait();

Когда доходит до последней строки, я получаю следующую ошибку (трассировка стека):

at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosClient.CreateDatabaseIfNotExistsOnceAsync(DbContext _, Object __, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementationAsync[TState,TResult](Func`4 operation, Func`4 verifySucceeded, TState state, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementationAsync[TState,TResult](Func`4 operation, Func`4 verifySucceeded, TState state, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosDatabaseCreator.EnsureCreatedAsync(CancellationToken cancellationToken)

А с Fiddler подробный ответ: "{" code ":" NotFound "," message ":" Объект с указанным идентификатором не существует в системе. \ R \ nActivityId: 6aed2df0-abe8-4e93-b468 -b3188005fcb5, Microsoft.Azure.Documents.Common / 2.1.0.0 "}"

Я проверил и дважды проверил, что все значения в моей конфигурации верны и соответствуют моей учетной записи CosmosDB в Azure, но я до сих пор не могу понять, что является причиной этой ошибки.

Кто-нибудь сталкивался с этим и нашел решение? Спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

Я обнаружил похожую проблему, ранее опубликованную ( Azure Cosmos DB - CreateDatabaseAsync - Resource Not Found ), где у кого-то возникла такая же проблема, и она была решена путем удаления БД и повторного создания. Я попробовал то же самое и обнаружил, что мой код работает, как и ожидалось.

Я предполагаю, что во время создания произошла ошибка, о которой никогда не сообщалось (или я где-то пропустил сообщение об ошибке) при создании первоначальной учетной записи CosmosDB. Так что, если кто-то получает подобное сообщение, попробуйте восстановить свою учетную запись.

...