我正在使用.Net连接到一个mongo数据库,当我按照下面的代码块使用客户端设置时,我得到了一个异常(在代码块下面)
var clientSettings = new MongoClientSettings()
{
ConnectTimeout = TimeSpan.FromSeconds(30),
SocketTimeout = TimeSpan.FromSeconds(30),
WaitQueueTimeout = TimeSpan.FromSeconds(30),
Server = new MongoServerAddress("host", portnumber)
};
var dbClient = new MongoClient(clientSettings);
var _mongoDb = dbClient.GetDatabase(db);
var mongoCollection = _mongoDb.GetCollection<T>(collection);
// exists with code 0 when not able to return with anything
var retVal = await mongoCollection.Find(filter).ToListAsync();
return retVal;
例外情况:
出现一个或多个错误。(30000ms后,使用复合服务器选择器选择服务器发生超时{选择器=MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector,延迟限制服务器选择器{允许延迟范围=00:00:00.0150000}}。群集状态的客户端视图为{群集ID:“1”,连接模式:“自动”,类型:“未知”,状态:“已断开连接”,服务器:[{服务器ID:“”{群集ID:1,终结点:“Unspecified/xxxx-mongoapi.documents.azure.com:10255”}“,终结点:”Unspecified/xxxx-mongoapi.documents.azure.com:10255“,状态:”已断开连接“,类型:”未知“,上次更新时间戳:”2022-09-16T11:18:00.8150834Z“}]}。
但是,如果我像这样添加连接字符串
var dbClient = new MongoClient(connectionString);
那么这个连接就没有问题了。
有谁能告诉我为什么\我哪里出错了吗?
谢谢
西蒙
1条答案
按热度按时间ukdjmx9f1#
正如评论中提到的,您在连接字符串和
MongoClientSettings
中指定了不同的选项,要检查它,请比较您手动填写的MongoClientSettings
与MongoClientSettings.FromConnectionString()
将拥有的选项:和