我有一个ASP.NET web应用程序,它连接到一个SQL数据库。
在appsettings.Development.json中,连接字符串定义为
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=WebRecipes-LocalDev;Trusted_Connection=True;ConnectRetryCount=0"
}在我的docker-compose.yml文件中,我得到了最新的mssql-server-linux
services:
sql.data:
image: microsoft/mssql-server-linux:2017-latest
webrecipes.api:
image: ${DOCKER_REGISTRY-}webrecipesapi
build:
context: .
dockerfile: src/WebRecipes.Api/Dockerfile在docker-compose.override.yml中,我为sql.data设置用户名和密码,并覆盖我的asp.net核心应用程序的连接字符串。
services:
sql.data:
environment:
- SA_PASSWORD=Pass@word
- ACCEPT_EULA=Y
ports:
- "5533:1433"
webrecipes.api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44302
- ConnectionString=Server=sql.data;database=WebRecipes-LocalDev;User Id=sa;Password=Pass@word
ports:
- "2282:80"
- "44302:443"
volumes:
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
depends_on:
- sql.data- ConnectionStrings:DefaultConnection=sql.data;database=WebRecipes-LocalDev;User Id=sa;Password=Pass@word
当我运行这个应用程序,它第一次尝试访问db时,我得到一个错误,它说不支持LocalDb,因为它使用在
appsettings.Development.json中定义的连接字符串。
有人能帮忙吗?我不知道我做错了什么..。
发布于 2019-08-27 08:30:50
ASP.NET 环境变量配置的核心官方文档有以下解释:
当使用环境变量中的分层键时,冒号分隔符(:)可能不会在所有平台(例如,Bash)上工作。所有平台都支持双下划线(__),并由冒号自动替换。
发布于 2019-08-03 08:56:51
使用双下划线对我有效
ConnectionStrings__DefaultConnection=sql.data;database=WebRecipes-LocalDev;User Id=sa;Password=Pass@word
https://stackoverflow.com/questions/56722291
复制相似问题