- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在 Azure 中使用 Mongo API 创建了一个 Cosmos DB 数据库。我已经创建了客户端并像这样配置-
_mongoDbConnectionString = configuration["MongoDBConnectionString"];
_databaseName = configuration["MongoDBName"];
_client = new MongoClient(_mongoDbConnectionString);
_database = _client.GetDatabase(_databaseName);
_collectionName = configuration["MongoDBCollectionName"];
然后尝试写入数据-
_database.GetCollection<dynamic>(_collectionName).InsertOne(data);
失败并出现错误-
A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "ReplicaSet", Type : "ReplicaSet", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/botframeworkcosmos.documents.azure.com:10255" }", EndPoint: "Unspecified/botframeworkcosmos.documents.azure.com:10255", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
我试过这个解决方案- A timeout occured after 30000ms selecting a server using CompositeServerSelector但它没有用。
我也尝试设置这样的 SSL 策略来配置客户端-
_mongoDbConnectionString = configuration["MongoDBConnectionString"];
_databaseName = configuration["MongoDBName"];
MongoClientSettings settings = MongoClientSettings.FromUrl(
new MongoUrl(_mongoDbConnectionString)
);
settings.SslSettings =
new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
_client = new MongoClient(settings);
_database = _client.GetDatabase(_databaseName);
_collectionName = configuration["MongoDBCollectionName"];
我仍然遇到同样的错误。奇怪的是,同样的代码,昨天还在工作。
更新我删除了数据库并创建了一个新数据库。还是同样的问题。
知道可能是什么问题吗?
最佳答案
我有同样的错误信息(A timeout occurred after 30000ms
with Unspecified
也提到)。这是因为我公司的防火墙阻止了 Cosmos Mongo 端口上的出站连接,例如TCP 10255。
我通过在我们公司的网络之外临时运行代码进行了测试,并且错误消失了(我确认当我在公司网络之外再次重新运行它时,它仍然失败)。
因此,添加网络防火墙规则以允许到 TCP 端口 10255 的出站连接应该可以解决此问题。
关于c# - 无法使用 Azure Cosmos DB 连接到 Mongo DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53002562/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!