Невозможно подключиться к учетной записи Azure Cosmos Db (Core SQL API) с помощью поставщика EF Core 3.0 CosmosDb - PullRequest
0 голосов
/ 18 октября 2019

Мне не удается подключиться к Azure CosmosDB с поставщиком CosmosDb с использованием следующих пакетов:

Microsoft.EntityFrameworkCore 3.0.0 Microsoft.EntityFrameworkCore.Cosmos 3.0.0

Получение этогообратное сообщение:

Код состояния ответа не указывает на успешность: 503 Подстатус: 0 Причина: (Запрос не выполнен, поскольку клиент не смог установить соединения с 3 конечными точками в 1 регионах. Проверьте наличие проблем с истощением ресурсов клиента ипроверьте соединение между клиентом и сервером.

Stacktrace

at Microsoft.Azure.Cosmos.ResponseMessage.EnsureSuccessStatusCode() at Microsoft.Azure.Cosmos.CosmosResponseFactory.ToObjectInternal[T](ResponseMessage cosmosResponseMessage, CosmosSerializer jsonSerializer) 
at Microsoft.Azure.Cosmos.CosmosResponseFactory.<>c__DisplayClass6_0.<CreateDatabaseResponseAsync>b__0(ResponseMessage cosmosResponseMessage) 
at Microsoft.Azure.Cosmos.CosmosResponseFactory.<ProcessMessageAsync>d__121.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Microsoft.Azure.Cosmos.CosmosClient.<CreateDatabaseIfNotExistsAsync>d__40.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult()
at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosClientWrapper.d__13.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosClientWrapper.CreateDatabaseIfNotExistsOnce(DbContext context, Object state) 
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementation[TState,TResult](Func3 operation, Func3 verifySucceeded, TState state) 
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) 
at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosClientWrapper.CreateDatabaseIfNotExists() at Microsoft.EntityFrameworkCore.Cosmos.Storage.Internal.CosmosDatabaseCreator.EnsureCreated() 
at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.EnsureCreated() at EFCoreCosmosDbTest.Test.<Run>d__0.MoveNext() in C:\Git\EFCoreCosmosDbTest\EFCoreCosmosDbTest\Test.cs:line 26 
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at EFCoreCosmosDbTest.Program.<Main>d__0.MoveNext()
in C:\Git\EFCoreCosmosDbTest\EFCoreCosmosDbTest\Program.cs:line 9

Если я перейду на Microsoft.Azure.DocumentDB.Core 2.8.1 и использую DocumentClient, у меня нет проблем с подключением к тому жеСоздайте учетную запись CosmosDb в Azure и создайте мою базу данных, контейнер и т. Д. Из того же решения.

Кроме того, если я загружаю проект быстрого запуска ядра .net из Azure, он работает без проблем.

Примечание. что он работает нормально, подключаясь к эмулятору Azure Cosmos Db локально с EF.

Iдля выполнения теста использовали репозиторий https://github.com/aspnet/EntityFramework.Docs/tree/master/samples/core/Cosmos.

Есть идеи, что я делаю не так?

  • EF Core версия: 3.0
  • Поставщик базы данных: Microsoft.EntityFrameworkCore.CosmosDb
  • Целевая среда: .NET Core 3.0

1 Ответ

0 голосов
/ 18 октября 2019

EF Provider использует пакет Cosmos SDK внизу.

enter image description here

Пожалуйста, добавьте пакет Microsoft.Azure.Cosmos в свой проект, ориентированный на последнюю версию (3.2.2).

Это можно сделать через CLI NET Core, запустив dotnet add package Microsoft.Azure.Cosmos в папке с файлами текущего проекта, и он должен обновить CSPROJ с помощью PackageReference.

...