I wrote a ASP.Net Core 2.2 application. Everything works fine when I run it on my dev machine.
I have published and deployed it to my staging machine as a self-contained application.
The TargetFramework is netcoreapp2.2. The RuntimeIdentifier is win-x64. And the Environment is Staging.
When running the app through the command line for some testing, it doesn't seem to be reading the appsettings.staging.json or any of the appsettings.json files.
For testing purposes I set the Configure Method of Startup.cs as follows:
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 ) );
} );
}
I run the app by typing in the command line: path/To/My/App.exe --environment Staging
The results the write out are: Chris Environment: Staging Chirs IsStaging: True Chris ConnectionString: Chris LoggingAPI:
The connectionstring and the LoggingAPI are left blank. The loop returns a bunch of values, but nothing that is in any of the appsettings.json files.
My appsettings.json file looks like:
{
"ConnectionStrings": {
"DefaultConnection": "Some ConnectionString"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"LoggingAPIURL": "SomeURL"
}
I have verified that the appsetting.json files are on the server.
Can someone explain to me what is going on?