代码之家  ›  专栏  ›  技术社区  ›  Rikalous

ASP.config文件和Azure设置之间存在混淆。Net core web app

  •  1
  • Rikalous  · 技术社区  · 7 年前

    我已经构建了一个项目(为SPA web应用程序提供API)作为Asp。Net核心Web应用程序(.Net framework)和WebApi选项(VS 2017社区)。这创建了一个带有应用程序的项目。配置文件,没有web。配置文件。我在应用程序中有一个部分。我使用读取的配置 System.Configuration.ConnectionManager.ConnectionStrings['MainDb']

    我对应用程序之间的交互有些困惑。配置和web。在此配置-我需要在哪里声明连接字符串,以便它可以被Azure门户设置覆盖?

    1 回复  |  直到 7 年前
        1
  •  1
  •   juunas    7 年前

    通常在ASP中。NET Core我们使用 appsettings.json https://joonasw.net/view/asp-net-core-1-configuration-deep-dive .

    所以你会有一个appsettings。json文件如下:

    {
      "ConnectionStrings": {
        "MainDb": "Data Source=.;Initial Catalog=MainDb;Integrated Security=True"
      }
    }
    

    IConfiguration 中的对象 Startup :

    public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            Configuration = builder.Build();
        }
    
        public IConfiguration Configuration { get; set; }
    
        public void ConfigureServices(IServiceCollection services)
        {
            string connStr = Configuration.GetConnectionString("MainDb);
        }
    }
    

    GetConnectionString("name") 实际上是 Configuration.GetSection("ConnectionStrings")["name"]