我应该从哪里打开从WCF服务到MongoDB的连接

时间:2017-02-12 16:19:14

标签: c# mongodb wcf

我正在编写一个将在后端使用MongoDB的WCF应用程序。我很困惑把这些线放在哪里。

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

我应该在每种方法或某些常见位置包含这些行吗?

2 个答案:

答案 0 :(得分:0)

一般来说,你应该避免重用连接并让框架为你做 - 基本上,让框架处理连接池并且不要试图阻止它。我对Mongo并不是100%肯定这一点,但在其他使用ADO.NET模式的领域中确实如此,并且由于MongoClient支持汇集我会假设相同的是这是真的。

假设Mongo实现正常工作,它将自动重用并回收连接 - 您不必在代码中担心这一点。相反,您应该考虑如何在连接池周围设置settings,并考虑如何设计WCF服务(单例?每个会话一次?单个呼叫?)。

答案是:代码段应该出现在您需要连接的任何位置,尽管connectionString可能应该存储在一个地方(例如app.configweb.config)。

答案 1 :(得分:0)

这实际上取决于服务应用程序的体系结构。

这方面的一个重要方面是,当连接失败和/或突然中止时,您将如何处理?你将如何处理重新连接?

如上所述,您的服务的InstanceContextMode和ConcurrencyMode是什么?另外:MongoClient线程安全吗?

大多数时候,我希望看到这些类型的初始化在构造函数中调用,或者以惰性方式初始化。

相关问题