【问题标题】:IIS Change WebApi ConnectionStringIIS 更改 WebApi 连接字符串
【发布时间】:2016-09-24 16:24:36
【问题描述】:

我们正在将 webApi 用于我们最新的产品之一,该产品托管在 IIS7.5 上并用 ASP.NET5 (.Net Core) 编写。

在早期的网络应用程序中,可以在 windows-Explorer 中更改 web.config 中的连接字符串,并且在 IIS 上运行的网站使用 web.config 文件中的连接字符串。

这对于现代 WebAPI 是否仍然可行(我有 ConnectionString insite appsettings.json)?我没有在 IIS 或 File-Explorer 中找到解决方案,并且使用 Environment-Variables 不符合我们的需求。

我们需要在多个数据库实例之间切换,因此非常欢迎基于文件的非常轻量级的解决方案。

PS:我们使用的是 EntityFrameworkCore(又名 EF7)Database-First,因为它是我们当前数据库之上的新工具。

【问题讨论】:

    标签: asp.net-web-api iis-7.5 connection-string entity-framework-core .net-core


    【解决方案1】:

    您可以使用其中一种配置源(包括 JSON,由 AddJsonFile() 在包 Microsoft.Extensions.Configuration.Json 中访问)来读取设置文件,然后使用从那里读取的值来配置 EF。

    示例代码如下所示:

    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json");
    
        Configuration = builder.Build();
    }
    
    public IConfigurationRoot Configuration { get; }
    
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<MyDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    }
    

    有关详细信息,请参阅 Configuration in ASP.NET Core docsthis answer

    【讨论】:

    • 谢谢你!配置options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]) 成功了。我只需要在更改 ConnectionString 后重新启动 IIS 应用程序(或池),但这对于我们的测试环境来说已经足够了,因为我们不会经常更改 :-)
    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2015-06-11
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多