Azure Cosmos DB:503 服务不可用

e2e*_*Dev 5 azure azure-cosmosdb

当从公司网络外部的代码进行连接时,Cosmos DB 连接工作得很好。但从公司网络来看,它会抛出一个503 ServiceUnavailable状态代码。可能出现哪些问题?

Mat*_*nta 12

根据评论:

System.Exception: 'Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: ServiceUnavailable (503); Substatus: 0;
ActivityId: ; 
Reason: (The request failed because the client was unable to establish connections to 4 endpoints across 1 regions. Please check for client resource starvation issues and verify connectivity between client and server.
Run Code Online (Sandbox Code Playgroud)

通常,如果您接受该异常并存储或查看ToString(),它会向您显示更多信息。但从消息本身来看,这意味着客户端尝试连接到所有已知的可用端点但失败了。

这通常意味着网络上有某些东西阻止了您的请求,或者执行此代码的计算机完全超载(CPU 为 100% 或端口耗尽)并且无法处理任何请求。

如果所有操作都始终失败,请检查您的网络是否打开了正确的端口范围:

每种连接模式的端口范围

默认情况下,SDK 在直接模式下工作,因此请检查 10000 到 20000 范围内的端口是否已打开且可用。如果您启用了专用端点,则范围为 0 到 65535。

正如 @GauravMantri 提到的,如果网络受到限制,您也可以更改为网关模式:

string connectionString = "<your-account-connection-string>";
CosmosClient client = new CosmosClient(connectionString,
new CosmosClientOptions
{
    ConnectionMode = ConnectionMode.Gateway 
});
Run Code Online (Sandbox Code Playgroud)