如何解决Azure 应用服务中的 Squidex:MongoDb 连接无法连接到数据库 Squidex
我是 Squidex 和 MongoDB 的新手,我正在尝试按照本指南在 Azure 应用服务中设置 Squidex:
我已顺利完成设置,并且可以在本地连接到我的 MongoDb 实例,使用我在 Squidex Mongo 数据库中配置为管理员的用户也没有问题。
但是,我的应用服务无法启动并出现以下错误:
2021-02-18T00:45:27.806844798Z Unhandled exception. Squidex.Hosting.Configuration.ConfigurationException: MongoDb connection failed to connect to database Squidex.
2021-02-18T00:45:27.806899798Z
2021-02-18T00:45:27.806905498Z ---> MongoDB.Driver.MongoAuthenticationException: Unable to authenticate using sasl protocol mechanism SCRAM-SHA-1.
2021-02-18T00:45:27.806910099Z ---> MongoDB.Driver.MongoCommandException: Command saslStart failed: Authentication failed..
2021-02-18T00:45:27.806914099Z at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol`1.ProcessReply(ConnectionId connectionId,ReplyMessage`1 reply)
2021-02-18T00:45:27.806918499Z at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol`1.ExecuteAsync(IConnection connection,CancellationToken cancellationToken)
2021-02-18T00:45:27.806931099Z at MongoDB.Driver.Core.Authentication.SaslAuthenticator.AuthenticateAsync(IConnection connection,ConnectionDescription description,CancellationToken cancellationToken)
2021-02-18T00:45:27.806935599Z --- End of inner exception stack trace ---
2021-02-18T00:45:27.806948099Z at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancellationToken)
2021-02-18T00:45:27.806952999Z at MongoDB.Driver.Core.Servers.Server.GetChannelAsync(CancellationToken cancellationToken)
2021-02-18T00:45:27.806956899Z at MongoDB.Driver.Core.Operations.CreateIndexesOperation.ExecuteAsync(IWriteBinding binding,CancellationToken cancellationToken)
2021-02-18T00:45:27.806960799Z at MongoDB.Driver.OperationExecutor.ExecuteWriteOperationAsync[TResult](IWriteBinding binding,IWriteOperation`1 operation,CancellationToken cancellationToken)
2021-02-18T00:45:27.806964699Z at MongoDB.Driver.MongoCollectionImpl`1.ExecuteWriteOperationAsync[TResult](IClientSessionHandle session,CancellationToken cancellationToken)
2021-02-18T00:45:27.806970799Z at MongoDB.Driver.MongoCollectionImpl`1.MongoIndexManager.CreateManyAsync(IClientSessionHandle session,IEnumerable`1 models,CreateManyIndexesOptions options,CancellationToken cancellationToken)
2021-02-18T00:45:27.806974799Z at MongoDB.Driver.MongoCollectionImpl`1.UsingImplicitSessionAsync[TResult](Func`2 funcAsync,CancellationToken cancellationToken)
2021-02-18T00:45:27.806978699Z at Squidex.Infrastructure.MongoDb.MongoRepositoryBase`1.InitializeAsync(CancellationToken ct) in /src/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs:line 113
2021-02-18T00:45:27.806984099Z --- End of inner exception stack trace ---
2021-02-18T00:45:27.806987899Z at Squidex.Infrastructure.MongoDb.MongoRepositoryBase`1.InitializeAsync(CancellationToken ct) in /src/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs:line 119
2021-02-18T00:45:27.806991899Z at Squidex.Hosting.InitializerHost.StartAsync(CancellationToken cancellationToken)
2021-02-18T00:45:27.806995599Z at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
2021-02-18T00:45:27.806999399Z at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host,CancellationToken token)
2021-02-18T00:45:27.807003099Z at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host,CancellationToken token)
2021-02-18T00:45:27.807006899Z at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
2021-02-18T00:45:27.807930204Z at Squidex.Program.Main(String[] args) in /src/src/Squidex/Program.cs:line 22
我在应用服务的 EVENTSTORE__MONGODB__CONFIGURATION 和 STORE__MONGODB__CONFIGURATION 应用程序设置中使用了与此类似的连接字符串:
mongodb://[USER_NAME]:[PASSWORD]@[MONGO_IP]:27017
解决方法
我解决了这个问题,Squidex 要求连接字符串也包括 authSource。如果您遇到此问题,请将 ?authSource=[DatabaseName] 添加到您的连接字符串中。就我而言,这是必需的:
mongodb://[USER_NAME]:[PASSWORD]@[MONGO_IP]:27017?authSource=Squidex
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。