Azure CosmosDB SQL API createDatabaseAsync 不创建数据库

问题描述 投票:0回答:2

我正在使用 Azure CosmosDB SQL API。我有一个异步任务要连接到我的 AzureCosmosDB 帐户,并且我正在尝试通过代码创建数据库。

以下是我的代码片段

private async Task ConnectToDocumentDB()
{
this.client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);
Console.WriteLine(client.WriteEndpoint);
Database db = await this.client.CreateDatabaseIfNotExistsAsync(new Database { Id = "MyDB" });
Console.WriteLine("Response --" + db.Id);           
}

当我在控制台中查看客户端的 EndPonit 以确保 AzureCosmosDb 连接时,我能够查看正确的 EndPoint。但是当我尝试创建数据库时,它不会创建数据库。

main方法调用该异步任务的方法如下

 Program p = new Program();
 p.ConnectToDocumentDB().Wait();

我不知道我哪里出了问题。帮我解决这个问题。

提前致谢!

c# azure azure-cosmosdb azure-cosmosdb-sqlapi
2个回答
1
投票

根据您的应用程序的上下文,当您的代码到达

.Wait()
调用时,
async
可能会导致死锁。

您应该使用

.GetAwaiter().GetResult()
,以便在幕后正确生成状态机以防止出现此问题。


0
投票

@nick 已添加您的行,但是调用 CreateDatabase Async 仍然挂在该步骤上,但是这种情况仅发生在 cosmos 版本 3.25 及更高版本中 有什么指点吗

© www.soinside.com 2019 - 2024. All rights reserved.