2017-02-12 59 views
0

我在寫一個將在後端使用MongoDB的WCF應用程序。我很困惑把這些線放在哪裏。我應該在哪裏打開從WCF服務連接到MongoDB

var connectionString = "mongodb://localhost:27017"; 
var client = new MongoClient(connectionString); 
var db = client.GetDatabase("Test"); 

我應該包括在每一個方法或一些共同的地方,這些線路?

回答

0

一般來說,你應該避免重用連接,讓框架爲你做 - 基本上,讓框架處理連接池並且不要妨礙它。我對Mongo並不十分確定,但在ADO.NET中使用這種模式的其他領域確實如此,並且由於MongoClient支持池化,所以我認爲在這裏也是如此。

假設Mongo實現正常工作,它會自動爲您重用和回收連接 - 您不必擔心代碼中的連接。相反,你應該考慮如何圍繞連接池設置你的settings,並考慮你的WCF服務是如何設計的(單例?單個會話?單個呼叫?)。

所以答案是:該代碼段應出現無處不在,你就需要連接,雖然的connectionString可能應該存儲在一個地方(如app.configweb.config)。

0

這真的取決於您的服務應用程序的體系結構。

這方面的一個重要方面是如何處理連接失敗和/或突然中止的情況?你將如何處理重新連接?

如上所述,什麼是您的服務的InstanceContextMode和ConcurrencyMode?另外:是MongoClient線程安全嗎?

大多數情況下,我期望看到這些類型的初始化在構造函數中被調用,或者在它以懶惰的方式初始化的地方。

相關問題