Sql server 用户登录失败';sa';仅在Azure管道上
我正在尝试在azure管道中运行e2e测试。但服务无法正确启动,因为它们无法连接到sql,出现以下错误:Sql server 用户登录失败';sa';仅在Azure管道上,sql-server,docker,docker-compose,azure-devops,azure-pipelines,Sql Server,Docker,Docker Compose,Azure Devops,Azure Pipelines,我正在尝试在azure管道中运行e2e测试。但服务无法正确启动,因为它们无法连接到sql,出现以下错误: Error: 18456, Severity: 14, State: 7 Login failed for user 'sa'. Reason: An error occurred while evaluating the password. [CLIENT: 172.18.0.9] 令人困惑的是,它只会在azure管道上失败。在我的本地机器上,它工作没有任何问题。 我已经尝试了不同的
Error: 18456, Severity: 14, State: 7
Login failed for user 'sa'. Reason: An error occurred while evaluating the password. [CLIENT: 172.18.0.9]
令人困惑的是,它只会在azure管道上失败。在我的本地机器上,它工作没有任何问题。
我已经尝试了不同的密码和连接字符串。我在azure管道和我的机器上运行linux容器
docker compose.yml:
version: '3.4'
services:
sqldata:
image: mcr.microsoft.com/mssql/server:2017-latest
identity-api:
image: ${REGISTRY:-PROJECTNAME}/identity.api:${PLATFORM:-linux}-${TAG:-latest}
build:
context: .
dockerfile: Dockerfile
depends_on:
- sqldata
docker compose.override.yml
version: '3.4'
services:
sqldata:
environment:
- SA_PASSWORD=Pass@word
- MSSQL_SA_PASSWORD=Pass@word
- ACCEPT_EULA=Y
ports:
- "5433:1433"
identity-api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://0.0.0.0:80
- ConnectionString=Server=sqldata;Database=IdentityDb;User Id=sa;Password=Pass@word
问题是,当服务尝试连接并运行迁移时,数据库仍在启动。我添加了一个检查,以在服务执行迁移之前等待主数据库准备就绪
while (IsServerConnected(connectionString) == false)
{
logger.LogWarning("Database server not ready ({ConnectionString})...", connectionString);
Thread.Sleep(5000);
}
...
private static bool IsServerConnected(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
}
太好了,你修好了!你可以选择你的。