私のappsettings.production.jsonファイルで接続文字列を使用するように私の公開ASP.netコアアプリケーションを取得できません。appsettings.production.jsonから接続文字列を取得できない
私は、開発およびプロダクションプロファイルにASPNETCORE_ENVIRONMENT環境変数を使用するようにlaunchSettingsを設定しました。プロファイルを切り替えてVisual Studioで実行すると、接続文字列が正しく変更されます。
私のUbuntuサーバーで公開アプリケーションを実行すると、切り替えられません。 ASPNETCORE_ENVIRONMENT変数をサーバー上の "Production"に設定しました。 appSettings.jsonとappSettings.production.jsonの両方がアプリケーションのルートディレクトリに存在することも確認しました。
マイappsettings.jsonファイル:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"ConnectionStrings": {
"DefaultConnection": "server=localhost;user id=root;password=dev;database=testdb;sslmode=none",
}
}
私appsettings.production.jsonファイル:
{
"ConnectionStrings": {
"DefaultConnection": "server=localhost;user id=root;password=prod;database=testdb;sslmode=none"
}
}
マイlaunchSettings.jsonファイル:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:50824/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "home/index",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express (Production)": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "home/index",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
}
}
}
}
マイStartup.cs:
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);
if (env.IsEnvironment("Development"))
{
// This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.
builder.AddApplicationInsightsSettings(developerMode: true);
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
Console.WriteLine("Root Path: " + env.ContentRootPath);
Console.WriteLine("Connection String: " + Configuration.GetConnectionString("DefaultConnection"));
}
私はすでに、これらの質問を参照したが、運:
asp.net core 1 appsettings.production.json not updating connection strings
dotnet publish doesn´t publish correct appsettings.{env.EnvironmentName}.json