MongoDB C#无法连接到数据库:无法创建验证器



在使用新部署的启用身份验证的MongoDB容器设置新环境时,我遇到了以下异常:"An unhandled exception has occurred while executing the request. MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.NotSupportedException: Unable to create an authenticator."

在我的例子中,我使用了一个连接字符串,例如:mongodb://USER:PASSWORD@HOST:27017/?authMechanism=DEFAULT。这个字符串在MongoDB Compass中运行得很好,但在我的.NET 6.0应用程序中却不行。

如果您查看MongoCredential.cs#L469中C#MongoDB驱动程序的源代码,您会发现在检查身份验证机制时抛出了此异常。

在连接字符串中指定了确切的身份验证机制后,所有异常都消失了!

示例:mongodb://USER:PASSWORD@HOST:27017/?authMechanism=SCRAM-SHA-256

希望其他在谷歌上搜索的人会发现我的答案有帮助!

快乐的编码。

从连接字符串中删除authMechanism=DEFAULT参数

对我来说,这只是将异常更改为unable to authenticate using sasl protocol mechanism scram-sha-256

经过一些尝试和错误,我通过将连接字符串更改为:使其正常工作

mongodb://USER:PASSWORD@HOST:27017/?authSource=admin

我不知道为什么需要将其作为默认值,并且SCRAM-SHA-256连接字符串在其他上下文中也能正常工作。。。

我也遇到过类似的问题,发现包含_的用户名不想使用C#驱动程序。

最新更新