Я написал приложение ASP.Net Core 2.2. Все работает нормально, когда я запускаю его на своем компьютере разработчика.
Я опубликовал и развернул его на своем промежуточном компьютере как отдельное приложение.
TargetFramework - netcoreapp2.2. RuntimeIdentifier - это win-x64. И окружающая среда развивается.
При запуске приложения через командную строку для некоторого тестирования оно, похоже, не читает файл appsettings.staging.json или какой-либо из файлов appsettings.json.
Для целей тестирования я настроил метод настройки Startup.cs следующим образом:
public void Configure( IApplicationBuilder app , IHostingEnvironment env )
{
if( env.IsDevelopment( ) )
{
app.UseDeveloperExceptionPage( );
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts( );
}
app.UseHttpsRedirection( );
Console.WriteLine( $"Chris Environment: {env.EnvironmentName}" );
Console.WriteLine( $"Chris IsStaging: {env.IsStaging( )}" );
Console.WriteLine( $"Chris ConnectionString: {Configuration.GetConnectionString( "DefaultConnection" )}" );
Console.WriteLine( $"Chris LoggingAPI: {Configuration["LoggingAPIURL"]}" );
foreach( var test in Configuration.AsEnumerable( ) )
{
var key = test.Key;
var val = test.Value;
Console.WriteLine( $"Chris Key: {key} - Value: {val}" );
}
app.UseMvc( b =>
{
b.Select( ).Expand( ).Filter( ).OrderBy( ).MaxTop( 100 ).Count( );
b.MapODataServiceRoute( "default" , "api" , EdmModelBuilder.GetEdmModel( app.ApplicationServices ) );
} );
}
Я запускаю приложение, набрав в командной строке: путь / To / My / App.exe - Постановка среды
Результаты выписаны:
Крис Окружающая среда: постановка
Chirs IsStaging: True
Крис ConnectionString:
Крис LoggingAPI:
Строка соединения и LoggingAPI оставлены пустыми. Цикл возвращает набор значений, но ничего из файлов appsettings.json отсутствует.
Мой файл appsettings.json выглядит так:
{
"ConnectionStrings": {
"DefaultConnection": "Some ConnectionString"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"LoggingAPIURL": "SomeURL"
}
Я убедился, что файлы appsetting.json находятся на сервере.
Может кто-нибудь объяснить мне, что происходит?