3

古い API (1.X) では、から返されたインスタンスのStateプロパティを使用して、サーバーが接続されているかどうかを確認できました。MongoServerMongoClient.GetServer

public bool IsConnceted
{
    get
    {
        return _client.GetServer().State == MongoServerState.Connected;
    }
}

ただしGetServer、新しい API (2.0) の一部ではありません。それはどのように達成できますか?

4

2 に答える 2

8

これを行うためのより適切な方法は、サーバーをチェックするのではなく、クラスター (複数のサーバーが含まれる場合があります) をチェックすることであり、MongoClientインスタンスから直接アクセスできます。

public bool IsClusterConnceted
{
    get
    {
        return _client.Cluster.Description.State == ClusterState.Connected;
    }
}

特定のサーバーを確認したい場合は、次の方法も可能です。

public bool IsServerConnceted
{
    get
    {
        return _client.Cluster.Description.Servers.Single().State == ServerState.Connected;
    }
}

値は最後の操作によって更新されるため、最新ではない可能性があることに注意してください。有効な接続があることを実際に確認する唯一の方法は、何らかの操作を実行することです。

于 2015-04-05T17:16:52.863 に答える