我有一个 API (.NET Core 2.2),它使用 SDK v3.5.0 从 Cosmos DB 检索文档。目前,由于对 Cosmos DB 的请求超时,一些请求会引发异常 - 响应是408 状态代码。值得一提的是,90% 的请求都被成功处理。
使用遥测记录 API 的活动,我注意到在依赖项表(记录对 Cosmos DB 的每个请求)中,持续时间超过 60 秒的请求是由名为“创建/查询文档”的命令发起的。这些是属于超时的请求。
另一方面,所有其他请求都使用“查询文档”命令,该命令在 < 5 秒内响应并且请求成功完成。为了分享更多上下文,我在下面详细说明了错误堆栈跟踪、一般规范以及我如何查询文档。
堆栈跟踪
Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: 408 Substatus: 0 Reason: (Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: 408 Substatus: 0 Reason: (Microsoft.Azure.Documents.RequestTimeoutException: GatewayStoreClient Request Timeout. Start Time:1/30/2020 4:18:00 AM; Total Duration:00:01:05.0332130; Http Client Timeout:00:01:05; Activity id: 7498789a-8e09-4c3e-96a6-31c32e4dc2d7; Inner Message: The …Run Code Online (Sandbox Code Playgroud)