我是 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, IWriteOperation`1 operation, 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
答案 0 :(得分:0)
我解决了这个问题,Squidex 要求连接字符串也包括 authSource。如果您遇到此问题,请将 ?authSource=[DatabaseName] 添加到您的连接字符串中。就我而言,这是必需的:
mongodb://[USER_NAME]:[PASSWORD]@[MONGO_IP]:27017?authSource=Squidex