我正在開發使用MongoDB的一個C#MVC的Web API作爲backend.I試圖連接到使用我的MongoDB數據庫無法使用MongoClientSettings作爲參數來連接到MongoDB中到MongoClient
MongoClient mongoClient = new MongoClient(connectionString)
其中ConnectionString的是格式:mongodb://Username:[email protected]
蒙戈DB是在虛擬機託管在Azure.I是能夠連接到數據庫和所有的作品好。不過我越來越頻繁的例外:
「MongoDb.driver.MongoConnectionException」。發生異常時 收到來自服務器的消息---> System.IO.IOException:無法從 讀取來自傳輸連接的數據:連接嘗試失敗 因爲關聯方沒有一段時間 後應對得當,......」
所以經過一些調查,我瞭解到,Azure是殺害空閒連接,我必須設置MaxConnectionIdleTime
。
爲了設置MaxConnectionIdleTime我決定在下面的方式
var credential = MongoCredential.CreateCredential("dbname", "UserName", "Password");
var settings = new MongoClientSettings
{
Credentials = new[] { credential },
Server = new MongoServerAddress("HostName", 27017),
MaxConnectionIdleTime = new TimeSpan(0, 3, 0)
};
MongoClient mongoClient = new MongoClient(settings);
連接到MongoDB的。在這種情況下,我使用的是相同的用戶名,這在我以前先連接在連接字符串中給定的密碼組合。
雖然試圖連接在這裏我得到內部異常:
MongoDB.Driver.MongoAuthenticationException: 「無法使用SASL協議機制SCRAM-SHA-1認證 」。無法讀取從傳輸連接數據: