我完全難住了。我正在使用最新的C#驅動程序(2.3.0.157)和最新的MongoDB(3.2)。數據庫作爲獨立設置運行,沒有複製或分片。我試過在Windows上本地運行以及在Amazon LINUX上遠程運行。MongoDB:在使用CompositeServerSelector選擇服務器30000ms後發生超時
我繼續得到一個超時錯誤,但神祕有時它只是工作(也許每20-30次嘗試一次)。
我創建的連接這樣:
private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["MongoDB"].ToString();
private static readonly string DataBase = ConfigurationManager.ConnectionStrings["MongoDBDatabase"].ToString();
private static IMongoDatabase _database;
public static IMongoDatabase GetDatabase(string database)
{
if (_database == null)
{
var client = new MongoClient(ConnectionString);
_database = client.GetDatabase(database);
}
return _database;
}
並調用它像這樣:
public static List<Earnings> GetEarnings()
{
var db = GetDatabase(DataBase);
if (db == null) return new List<Earnings>();
var logs = db.GetCollection<Earnings>("EarningsData");
var all = logs.Find(new BsonDocument()).ToEnumerable().OrderBy(x => x.Symbol).ToList();
return all;
}
,它會在方法的logs.Find兼職了。下面是完整的消息:
其他信息:30000ms選擇使用CompositeServerSelector {選擇器= ReadPreferenceServerSelector {ReadPreference = {模式=主,標籤集= []}},LatencyLimitingServerSelector {AllowedLatencyRange服務器後
發生超時= 00:00:00.0150000}}。集羣狀態的客戶端視圖是{ClusterId:「1」,ConnectionMode:「Direct」,Type:「Unknown」,State:「Disconnected」,Servers:[{ServerId:「{ClusterId:1,EndPoint:」XX.XX. XX.XX:27017「}」,EndPoint:「XX.XX.XX.XX:27017」,狀態:「斷開」,類型:「未知」}]}。
我使用完全合格的主機名嘗試,將連接=直接和連接= replicaSet到連接字符串,使用MongoClientSettings而不是連接字符串和一切我可以在論壇和StackOverflow上可能找到的。我不知所措,甚至不知道下一步該往哪裏看。有什麼建議?
我還要補充,我可以在命令行和RoboMongo正常連接...
and the ipadress在「Servers:[{ServerId:」{ClusterId:1,EndPoint:「XX.XX.XX.XX:27017」}「,EndPoint:」XX.XX.XX.XX:27017「 「是正確的嗎? – HoefMeistert
是的,這是正確的IP地址。我出於顯而易見的原因被混淆了。 – user1464246
日誌集合中有多少個文檔? – HoefMeistert