[英]Overriding appsettings.json in IIS
我有一個 .net 核心 web 項目,我正在 ZAEA23489CE3AA9B6406EBB28E 或服務器上發布到 IIS 項目。 我似乎無法讓 IIS 通過配置編輯器提供連接字符串。 我想要這里的連接字符串,這樣每次部署后它就不會被覆蓋。
我曾嘗試使用ASPNETCORE_ConnectionStrings__DefaultConnection
和ConnectionStrings:DefaultConnection
但我總是收到 500 錯誤,指出連接字符串不能是 null。
我在這里想念什么?
這是我的Startup.cs
文件的一部分: 請注意,此應用程序是在默認配置為您執行此操作之前的一段時間。
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddUserSecrets<Startup>()
.AddEnvironmentVariables();
Configuration = builder.Build();
}
}
我已經設置了一個全新的.Net Core 2.2 應用程序。 即使使用較新的程序/啟動。 連接字符串沒有通過。
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args) //<-- adds config.AddEnvironmentVariables();
.UseStartup<Startup>();
}
我認為您需要從環境變量中刪除 ASPNETCORE_ 前綴(只是您的連接字符串而不是 ASPNETCORE_ENVIRONMENT)。
我在這里查看環境變量配置提供程序的 Microsoft 源代碼: https://github.com/aspnet/Configuration/blob/d469707ab18eef7ed0002f00175a9ad5b0f36250/src/Config.EnvironmentVariables/EnvironmentVariablesConfigurationProvider。
如果您願意,它確實需要一個“前綴”,但是當我查看“CreateDefaultBuilder”的源代碼時: https://github.com/aspnet/MetaPackages/blob/master/src/Microsoft.AspNetCore/WebHost .cs#L177
它只是用一個空的前綴參數調用它,這意味着你根本不應該使用任何前綴:
config.AddEnvironmentVariables();
您當然可以使用您選擇的前綴手動添加對 AddEnvironmentVariables 的調用,然后您也可以將其添加到您的環境變量中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.