gpt4 book ai didi

c# - MongoDB C# 单声道

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:45 25 4
gpt4 key购买 nike

从 C# 连接时,我在检查 mongodb 是否处于事件状态时遇到问题。下面的代码显示了我正在尝试做的事情。如果 mongodb 不可用,我期待一个异常(exception)。但是,即使 mongodb 未打开,代码也无一异常(exception)地运行。稍后,当尝试查询数据库时,代码将超时并出现任务异常。

我的平台是 OS X、Mono 4.0.3、Xamarin、MongoDB 驱动程序 2.0.1。

Windows等其他平台是否抛异常

或者是否有其他方法来验证数据库是否处于事件状态?

最好,胡

MongoClient client = new MongoClient( "mongodb://localhost:27017" );
try
{
IMongoDatabase db = client.GetDatabase( "clientservertest" );
// Should throw exception if not connected
m_collection = db.GetCollection<T>( collection );
m_connected = true;
}
catch( Exception )
{
m_connected = false;
}

最佳答案

“monogodb//”风格的 URI 是抛出异常的一个问题,尝试在 try/catch 中抓取数据库统计信息:

MongoClient client = new MongoClient( "mongodb://localhost:27017" );
try
{
IMongoDatabase db = client.GetDatabase( "clientservertest" );
try (
db.GetStats();
m_connected = true;
catch (MongoConnectionException) {
m_connected = false;
}
}
catch( Exception ) // Generic exception
{
m_connected = false;
}

根据您使用的版本,您可以使用 Server Ping() 方法。从您的客户端获取服务器对象 (var server = client.GetServer()) 并对其执行 ping (server.Ping())。

关于c# - MongoDB C# 单声道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32167118/

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