同じソフトウェアを複数の環境に展開しており、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" })
ます。この例外をキャッチするのが最善の選択肢ですか?