【问题标题】:C# .Net + MongoDB Atlas connection string MongoDB.Driver.Legacy error when trying to run ClientC# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错
【发布时间】: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了吗?
  • 您上面的代码没有使用旧版驱动程序,看起来您这边有一些不同的问题。创建一个简单的控制台应用程序并在那里检查此行为。我认为它可以正常工作,然后检查与主应用程序的区别

标签: c# database mongodb connection-string mongodb-atlas


【解决方案1】:

您需要确保已将 mongocsharpdrive 包添加到您的包及其依赖项中。 由于您的目标是 .net5,因此请考虑 .net 标准 2.0 依赖项。

【讨论】:

  • 谢谢!我已经通过 NuGet 包添加了它,但我似乎没有做出任何改变......任何方式来测试我是否正确完成......?
  • @YafimSimanovsky 您是否添加了我的答案中给定链接中提到的依赖项?
  • 是的,如果这就是您的意思,它会出现在项目的 packages.config 文件中。我不想通过 CLI 手动安装它,因为该项目是为外部用户编译的,我不确定他们将如何在不手动安装的情况下使用它,所以我必须将它作为一些包包含在项目编译中进程(例如 NuGet)。
  • “考虑 .net 标准 2.0 依赖项”到底是什么意思?也许我错过了一些文件,因为我仍然无法解决问题......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 2019-06-07
  • 2015-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多