C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错
Posted
技术标签:
【中文标题】C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错【英文标题】:C# .Net + MongoDB Atlas connection string MongoDB.Driver.Legacy error when trying to run Client 【发布时间】:2022-01-10 13:16:23 【问题描述】:我在 MongoDB Atlas 数据库中设置了集群 + 集合。 我正在尝试按照以下教程进行操作: Bookstore | Using ASP.NET Core 5.0 and MongoDB
我的代码如下,当然换成真实数据:
var client = new MongoClient("mongodb+srv://<username>:<password>@<clustername>.ck3ra.mongodb.net/<database>?retryWrites=true&w=majority");
var database = client.GetDatabase("<database>");
var collection = database.GetCollection<BsonDocument>("validation");
ShowMessage(collection.ToString());
我得到的错误是:
System.IO.FileLoadException:无法加载文件或程序集“MongoDB.Driver.Legacy”或其依赖项之一。一个论点超出了它的法律范围。 (来自 HRESULT 的异常:0x80131502) 文件名:'MongoDB.Driver.Legacy' ---> System.ArgumentOutOfRangeException:长度不能小于零。 参数名称:长度
我不确定这里出了什么问题,因为我完全按照 MongoDB 网站上的 Connect 说明以及其他教程编写连接字符串...
不胜感激。 谢谢。
【问题讨论】:
你的项目中添加了mongocsharpdriver packge了吗? 您上面的代码没有使用旧版驱动程序,看起来您这边有一些不同的问题。创建一个简单的控制台应用程序并在那里检查此行为。我认为它可以正常工作,然后检查与主应用程序的区别 【参考方案1】:您需要确保已将 mongocsharpdrive 包添加到您的包及其依赖项中。 由于您的目标是 .net5,因此请考虑 .net 标准 2.0 依赖项。
【讨论】:
谢谢!我已经通过 NuGet 包添加了它,但我似乎没有做出任何改变......任何方式来测试我是否正确完成......? @YafimSimanovsky 您是否添加了我的答案中给定链接中提到的依赖项? 是的,如果这就是您的意思,它会出现在项目的 packages.config 文件中。我不想通过 CLI 手动安装它,因为该项目是为外部用户编译的,我不确定他们将如何在不手动安装的情况下使用它,所以我必须将它作为一些包包含在项目编译中进程(例如 NuGet)。 “考虑 .net 标准 2.0 依赖项”到底是什么意思?也许我错过了一些文件,因为我仍然无法解决问题......以上是关于C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 Heroku 连接到 Atlas MongoDB 时出现问题