1

我正在使用 ASP.NET Core 2.2、GraphQL.NET、CosmosDB、Entity Framework Core (Microsoft.EntityFrameworkCore.Cosmos v2.2.4) 进行 API 开发项目。

在测试从 AzureComosDB 提取数据的 API 方法时,有时我会收到此错误:

Microsoft.EntityFrameworkCore.Storage.RetryLimitExceededException:“使用“CosmosExecutionStrategy”执行数据库操作时超出了最大重试次数 (6)。有关最近的失败,请参阅内部异常。

我不确定为什么会间歇性地弹出此错误。

任何人都可以通过提供一些指导来解决这个问题来帮助我吗?

4

2 回答 2

1

我想知道有关上下文文件的更多信息,因为错误说`

'超过最大重试次数 (6)'

`。如果您尝试在每个请求上重新部署数据库,这可能会导致,因此考虑到您已经在 cosmosdb 中部署了数据库,建议删除 Database.EnsureCreated() 会产生性能问题。

有关更多信息,请参阅本文档https://docs.microsoft.com/en-us/ef/core/providers/cosmos/?tabs=dotnet-core-cli

于 2019-10-19T09:07:37.687 回答
0

首先,您是否检查了错误中所述的内部异常?

Microsoft.EntityFrameworkCore.Storage.RetryLimitExceededException:“使用“CosmosExecutionStrategy”执行数据库操作时超出了最大重试次数 (6)。有关最近的失败,请参阅内部异常。

它可能会为它失败的原因提供线索。

现在,这个错误是由 cosmos 重试策略引起的。如果操作失败,它将重试最多六次

您可以修改此策略,但可以在此处找到默认策略。它被重试的事实表明它是一个重试时可能会消失的错误。一个很好的例子是网络连接中的故障(例如,当 wifi 信号不好时)。另一个可能是请求超出了规定的请求单位限制的事实。

于 2019-10-18T18:59:48.520 回答