如何修复“ConnectionString 属性尚未初始化。”在.Net

问题描述 投票:0回答:1

我正在使用 Docker 容器开发一个 .Net api,但目前要在 swagger 中发出 GET 请求,它会返回

" The ConnectionString property has not been initialized."
,这与数据库连接失败有关。

这是招摇的错误:

enter image description here

这是包含 Postgresql 映像设置的

docker-compose.yml
文件:

`services:
 db:
   image: postgres
   restart: always
   environment:
     POSTGRES_USER: postgres
     POSTGRES_DB: my_db
     POSTGRES_PASSWORD: example
   volumes:
     - postgres-data:/var/lib/postgresql/data
 adminer:
   image: adminer
   restart: always
   ports:
     - 8080:8080
 app:
   build:
     context: .
     dockerfile: ./Dockerfile
   ports:
     - 5000:80
   depends_on:
     - db
volumes:
 postgres-data:`

这是

appSetting.json
中的ConnectionString:

`{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "ConnectionStrings": {
      "DefaultConnection": "Host=db;Port=5432;Database=my_db;Username=postgres;Password=example"
    }
  },
  "AllowedHosts": "*"
}
`

最后这是

Program.cs
中的 dbContext 注入:

`builder.Services.AddDbContext<EnrollAppTesting>(o => {
     o.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection"));
    }
);`

我本来希望将基本的Api操作(GET,POST,PUT,DELETE)放入数据库中,但显然数据库没有配置好也没有解决。

c# asp.net .net postgresql docker
1个回答
0
投票

您是否尝试过在 Docker 容器之外进行调试?我注意到您的文件名是“appSetting.json”,而默认名称通常是“appsettings.json”,但也许这是您的帖子中的拼写错误,而不是您的文件名中的拼写错误。请记住,Linux 文件系统区分大小写。这也可能在这里发挥作用。

© www.soinside.com 2019 - 2024. All rights reserved.