Просто посмотрите документацию по конфигурации . Я полагаю, вы используете Asp Net Core и добавляете Mvc в свой стартап
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseMvc();
...
}
По умолчанию, он попытается загрузить 2 файла конфигурации, appsettings.json
и appsettings.{Environment}.json
, последние переопределяют содержимое из окончательной конфигурации, а также по умолчанию ядро уже имеет две среды: development
и * 1009. *, все зависит от того, какой профиль вы используете (в visual studio по умолчанию будет разработка).
Таким образом, ваш файл конфигурации может быть переименован в appsettings.json
, затем вы объявляете строки подключения для производства и создаете файл appsettings.Development.json
, где вы можете переопределить подключение с помощью строки подключения разработки.
Вы также можете загрузить больше файлов или изменить файлы по умолчанию, используя что-то вроде этого
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.SetBasePath(Directory.GetCurrentDirectory());
config.AddInMemoryCollection(arrayDict);
config.AddJsonFile("json_array.json", optional: false, reloadOnChange: false);
config.AddJsonFile("starship.json", optional: false, reloadOnChange: false);
config.AddXmlFile("tvshow.xml", optional: false, reloadOnChange: false);
config.AddEFConfiguration(options => options.UseInMemoryDatabase("InMemoryDb"));
config.AddCommandLine(args);
})
.UseStartup<Startup>();
Если вы хотите переменную окружения
Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT ")
Но, пожалуйста, подумайте о том, чтобы быть более безопасным
Для важных данных более безопасным может быть настройка строки подключения в качестве переменной среды на вашем сервере, чтобы ее можно было удалить из кода и сохранить большую конфиденциальность.
Это и другое решение, использующее менеджер секретов, можно найти в документации секреты .
Редактировать
В противном случае по умолчанию используется файл appSettings.json (это будет
в производстве)
Нет, он не будет загружать один или другой, сначала он загрузит appsettings.json, это всегда, независимо от того, какая у вас среда.
Затем, после загрузки appsettings.json
, он попытается загрузить appsettings.{Environment}.json
и добавит ключи, которых там не было, и переопределит старый ключ, если он существует.
Если у вас в настройках приложения
{
"SomeConfigJustInAppSettings": "some value",
"ThisWillBeOverride": "some value"
}
И ваши appsettings.Development.json
{
"SomeConfigJustInDev": "some other value",
"ThisWillBeOverride": "some other value"
}
Ваша конфигурация в dev была бы:
{
"SomeConfigJustInAppSettings": "some value",
"SomeConfigJustInDev": "some other value",
"ThisWillBeOverride": "some other value"
}
что определяет, что содержит "ASPNETCORE_ENVIRONMENT"?
Является переменной среды , установленной в Оперативной системе. Кроме того, для разработки Visual Studio может предварительно загружать некоторые переменные, когда вы разрабатываете свое приложение, просто проверьте launchSettings.json
, пример:
{
"profiles": {
"MyProject": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:50051"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}"
}
}
}
Специально эта часть
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
Было бы неплохо просто найти имя сервера и использовать его.
Потому что я бы проверил только мое имя сервера, а все остальное
будет означать производство
Прямо сейчас это еще проще, если переменная не существует, она просто загружает настройки приложения, которые могут содержать ваши настройки продукта. Когда вы разрабатываете, Visual Studio (или код VS, или Rider) уже добавляет переменную со значением Development
, поэтому все, что вам нужно сделать, это добавить файл appsettings.Development.json
.
Черт, вы даже можете просто создать новый проект, макет проекта по умолчанию уже создает эти два файла для вас!