无法使用 Fastendpoints 项目模板初始化与 MongoDB 的连接

问题描述 投票:0回答:1

我在 Visual Studio 2022 中使用 Fastendpoints Web 应用程序模板创建了一个新项目。它是一个 .net core 8.0 应用程序,附带使用 mongodb 数据存储的嵌入式通知服务。我创建了一个 MongoDB 帐户并在云中创建了一个数据库。我可以通过 mongodb Web UI 成功访问我的数据库。我从 mongo 开发门户复制了连接字符串并将其放入应用程序中,但现在无法成功运行该应用程序。 mongodb 将无法成功连接到我的 mongo 数据库,这会阻止我运行该应用程序。

我在本地安装了 mongodb-atlas,然后尝试创建本地数据库,结果却告诉我本地 mongodb-atlas 与 Windows 操作系统不兼容。 program.cs 中的 initasync() 调用似乎将端口地址插入到我的连接字符串中,就好像我正在连接到本地主机一样,即使在 Windows 上 mongodb 不会托管。这是我正在尝试的示例,当然我的用户名/密码已删除:

await DB.InitAsync(myDbName, "mongodb://<MyUserName>:<MyPassword>@olaxxwh.mongodb.net/?authSource=admin");

我对此的调用给出了以下错误:

System.ArgumentException: 'mongodb://<MyUserName>:<MyPassword>@olaxxwh.mongodb.net/?authSource=admin:27017' 

不是有效的终点。 (参数'值')'

注意 init 函数将 :27017 添加到连接字符串中。我也尝试过 mongodb+srv 以及 mongodb 但没有什么区别。

我已经为此奋斗了两天。我不明白为什么这如此复杂。使用 MongoDB.Entities 让 initasync() 工作有什么魔力?

mongodb initialization
1个回答
0
投票

我找到了解决办法。 DB.InitAsync() 上有一个重载,它接受 DbName 和 MongoClientSettings 值。如果您有 MongoDB-Atlas 云数据库,请从 MongoDB 开发门户提取连接字符串,在指定的位置插入您的用户/密码,然后在 Fastendpoints program.cs 文件中执行以下操作,它将起作用!

settings = MongoClientSettings.FromConnectionString(YourConnectionString);

settings.ServerApi = new ServerApi(ServerApiVersion.V1);

等待 DB.InitAsync(dbName, 设置);

享受吧!

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.