2017-02-12 10 views
0

私はバックエンドでMongoDBを使用するWCFアプリケーションを作成しています。私はこれらの行をどこに置くのか混乱しています。WCFサービスからMongoDBへの接続を開ける必要があります

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

これらの行をすべての方法または一般的な場所に含める必要がありますか?

答えて

0

一般的に言えば、接続を再利用しないようにして、フレームワークでそれを行うようにしてください。基本的に、フレームワークは接続プーリングを処理し、そのやり方を試みません。私はMongoについてこれについて100%確信しているわけではありませんが、ADO.NETのこのパターンを使用する他の分野でも確かに当てはまります。MongoClientはプーリングをサポートしているため、ここでも同じことが当てはまります。

Mongoの実装は、必要に応じて動作すると仮定すると、自動的に接続が再利用され、リサイクルされます。コードで心配する必要はありません。その代わりに、接続プーリングを使用してsettingsを設定する方法と、WCFサービスがどのように設計されているかを考えなければなりません。

これは、コードスニペットはどこにでも接続する必要がありますが、接続文字列はおそらく1つの場所(app.configまたはweb.configなど)に格納されている必要があります。

0

実際は、サービスアプリケーションのアーキテクチャによって異なります。

この重要な側面は、接続が失敗した場合や突然中止された場合の対処方法です。どのように再接続を処理しますか?

あなたのサービスのInstanceContextModeとConcurrencyModeは何ですか?また、MongoClientのスレッドセーフですか?

ほとんどの場合、私はこれらの型の初期化がコンストラクタで呼び出されるか、またはそれが怠惰な方法で初期化されるどこかで期待されます。

関連する問題