如何使用代理从 Cosmos SDK .Net 连接到 Azure Cosmos?

Posted

技术标签:

【中文标题】如何使用代理从 Cosmos SDK .Net 连接到 Azure Cosmos?【英文标题】:How to use proxy for connection from Cosmos SDK .Net to Azure Cosmos? 【发布时间】:2021-12-21 10:29:24 【问题描述】:

我的客户在 http://localhost:9000/ 上的公司代理后面。我尝试通过该代码在我的 .Net Core 5 WebApi App 中设置代理:

var client = new CosmosClient(dbConfig.GetValue<string>("Endpoint"), dbConfig.GetValue<string>("Key"), new CosmosClientOptions()

    WebProxy = new WebProxy("http://localhost:9000/", true)
);

但连接不工作。我收到了Service unavailable。关闭代理连接并直接访问 Internet 后,我​​的 .Net 后端正在工作。有什么想法吗?

【问题讨论】:

【参考方案1】:

看起来答案是Gateway-mode:

var client = new CosmosClient(dbConfig.GetValue<string>("Endpoint"), dbConfig.GetValue<string>("Key"), new CosmosClientOptions()

    WebProxy = new WebProxy("http://localhost:9000/", true),
    ConnectionMode = ConnectionMode.Gateway
);

【讨论】:

没错。 SDK 默认使用Direct mode

以上是关于如何使用代理从 Cosmos SDK .Net 连接到 Azure Cosmos?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Service Fabric Mesh 连接到 Azure Cosmos DB

如何通过 Azure 虚拟网络从 power bi 桌面应用程序连接到 cosmos db

如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?

Cosmos db 使用 Java SDK 部分更新 SQL api

Cosmos SDK远程连接被拒绝

无法使用 Microsoft.EntityFrameworkCore.Cosmos 连接到 Azure Cosmos Db 帐户 - 响应状态代码