1

同じソフトウェアを複数の環境に展開しており、MongoDB レプリカ セットを使用するものもあれば、単一のサーバーを使用するものもあります。を使用する特定の更新操作がありWriteConcern.WMajorityますが、サーバーがレプリカ セットの一部でない場合、例外がスローされます。

サーバーがレプリカ セットの一部であるかどうかをサーバーに問い合わせる方法を探しているので、安全に使用できるかどうかがわかりますWriteConcern.WMajority。私の試みはこれでした:

string connStr = System.Configuration.ConfigurationManager
    .ConnectionStrings["connStrName"].ConnectionString;
var server = new MongoDB.Driver.MongoClient(connStr).GetServer();
bool isReplicaSet = server.GetDatabase("admin")
    .RunCommand("replSetGetStatus").Ok;

しかし、これはスローしMongoDB.Driver.MongoCommandException: Command 'replSetGetStatus' failed: not running with --replSet (response: { "ok" : 0.0, "errmsg" : "not running with --replSet" })ます。この例外をキャッチするのが最善の選択肢ですか?

4

1 に答える 1