我无法使用 VS2015/17 数据库项目发布的读/写侦听器终结点或使用 DACFx 部署到 Azure 故障转移组内的 Azure SQL 数据库? 我正在使用具有适当权限的包含用户,并通过直接部署到数据库的主 Azure SQL 服务器而不是故障转移组的读/写侦听器来证明它的工作原理。
使用DacFX或直接从VS2015/17发布时,我得到了相同的异常。
Exception Message:
Could not deploy package.
Inner Exception Message:
Unable to connect to master or target server '<MY DATABASE>'. You must have a user with the same password in master or target server '<MY DATABASE>'.
StackTrace:
at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken)
at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, CancellationToken cancellationToken, DacLoggingContext loggingContext, Action`3 reportPlanOperation, Boolean executePlan)
at Microsoft.SqlServer.Dac.DacServices.Deploy(DacPackage package, String targetDatabaseName, Boolean upgradeExisting, DacDeployOptions options, Nullable`1 cancellationToken)
此问题是由 DacFx 在后台打开与主数据库的连接引起的。目前,故障转移组不包括 master 数据库,因为它需要复制它,并且无法复制主数据库 - 主服务器和辅助服务器上的主服务器是独立的,并且都是可写的。这是一个已知问题,我们正在通过将主节点视为特殊情况来解决它。我们将允许在侦听器指向的服务器上连接到它。