c# - 在连接 Azure Cosmos DB API for MongoDB 时,如果 ConnectionModeSwitch 设置为 UseConnectionMode,则无法使用 DirectConnection

标签 c# asp.net mongodb azure azure-cosmosdb

我想通过 ASP.NET 应用程序连接适用于 MongoDB 的 Azure Cosmos DB API。首先,我使用 Microsoft 提供的连接字符串(通过 Azure 创建实例时)

var client = new MongoClient("mongodb://[myInstanceName]:
[primaryAccountKey]@[myInstanceName].documents.azure.com:10255/?ssl=true&retrywrites=false&replicaSet=globaldb
&maxIdleTimeMS=120000&appName=@mongocosmocoffedb@");

var database = client.GetDatabase("productdb");

var collection = database.GetCollection<Product>("productcollection");
return Ok(collection);

但是当我使用这个连接字符串时出现错误

DirectConnection cannot be used when ConnectionModeSwitch is set to UseConnectionMode.

我找到了this stackoverflow topic并尝试使用

var client = new MongoClient("mongodb://[myInstanceName]:
[primaryAccountKey]@[myInstanceName].documents.azure.com:10255/?ssl=true");

但在这种情况下我遇到了错误

MaxWireVersion is not known.

最佳答案

这是连接模式端口问题。您提到的端口号 10255 用于异地复制,这导致了问题。帖子编号 10255、10256 映射到具有异地复制的实例。

将端口号更改为 10255。10250 映射到 Mongo DB 的默认 Azure cosmos DB API。如果使用异地复制,您可以使用公共(public)端点 10255

请引用以下链接:https://learn.microsoft.com/en-us/azure/cosmos-db/sql/sql-sdk-connection-modes

关于c# - 在连接 Azure Cosmos DB API for MongoDB 时,如果 ConnectionModeSwitch 设置为 UseConnectionMode,则无法使用 DirectConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71740944/

相关文章:

c# - 如何防止由于IO操作期间属性快速变化而导致UI阻塞?

c# - 我的 sql 数据库表中没有任何内容?

javascript - 如何将 MongoDB 查询捕获为字符串并将其显示在我的 Node JS 页面中(使用 mongojs 驱动程序)?

c# - 可以用 jquery 开发整个 asp.net web 表单

c# - 神圣的倒影

python - 如何使用 Pymongo 在 MongoDB 中选择单个字段?

ruby-on-rails-3 - MongoDB设置: mongo.日志权限错误?

c# - Excel.Worksheet.Cells 具有相反的行为?

c# - 从 sql ExecuteScalar() 中检索值

c# - 字节码大小对 JIT/内联/性能有多大影响?