gpt4 book ai didi

c# - 在不知道任何数据库的情况下检查 MongoDB 服务器是否已启动

转载 作者:可可西里 更新时间:2023-11-01 10:45:15 28 4
gpt4 key购买 nike

我正在为应用程序创建 MongoDB 连接器,想知道是否可以在不知道任何数据库的情况下检查 MongoDB 服务器是否已启动。

到目前为止,我看到的每个示例都需要已弃用的方法或 MongoDB 服务器上的数据库才能为人所知。

下面是我尝试做的一个例子;

How to check connection to mongodb

我想到的一种方法是使用;

ListDatabaseNames()

捕获与连接失败相关的任何异常。但是,这似乎是一个“肮脏”的解决方案,因为我还必须捕获与无效权限相关的所有异常才能运行命令。

也许,我正在尝试做的事情没有意义。如果是这样,请务必说出来!

最佳答案

在查看了以下堆栈溢出提交之后;

MongoServer.State equivalent in the 2.0 driver

C# MongoDB.Driver GetServer is Gone, What Now?

How to check connection to mongodb

我开始意识到直接 ping 服务器/集群是不可能的。为了解决这个问题,我做了以下事情;

public bool checkConnection(string connection_string)
{
var client = new MongoClient(connection_string)

try
{
client.ListDatabaseNames();
}
catch (Exception)
{
}

return client.Cluster.Description.State == ClusterState.Connected;
}

这应该处理任何权限问题,因为即使用户实际上没有运行权限,它也应该返回连接状态;

client.ListDatabaseNames();

如果使用上述内容,则应进行额外检查以确保 MongoClient 不为空。

关于c# - 在不知道任何数据库的情况下检查 MongoDB 服务器是否已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54520754/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com