I am experiencing an error when trying to run my ASP.Net Core 3.1 project. The error is at CreateHostBuilder
within Program.cs
public class Program {
public static void Main(string[] args) {
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
}
which has not been edited from the default ASP.NET Core Web application template from Visual Studio 2019. It gives the exception
System.FormatException: 'Could not parse the JSON file.'
It does not however refer exactly to what JSON file it's failing to parse. Here is a pastebin with all 3 existing JSON files it could be parsing.
Here is the full error stack:
HResult=0x80131537
Message=Could not parse the JSON file.
Source=Microsoft.Extensions.Configuration.Json
StackTrace:
at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at <filename>.Main(String[] args) in <filename>:line 13
This exception was originally thrown at this call stack:
System.Text.Json.ThrowHelper.ThrowJsonReaderException(ref System.Text.Json.Utf8JsonReader, System.Text.Json.ExceptionResource, byte, System.ReadOnlySpan<byte>)
System.Text.Json.Utf8JsonReader.ReadSingleSegment()
System.Text.Json.Utf8JsonReader.Read()
System.Text.Json.JsonDocument.Parse(System.ReadOnlySpan<byte>, System.Text.Json.Utf8JsonReader, ref System.Text.Json.JsonDocument.MetadataDb, ref System.Text.Json.JsonDocument.StackRowStack)
System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory<byte>, System.Text.Json.JsonReaderOptions, byte[])
System.Text.Json.JsonDocument.Parse(System.ReadOnlyMemory<char>, System.Text.Json.JsonDocumentOptions)
System.Text.Json.JsonDocument.Parse(string, System.Text.Json.JsonDocumentOptions)
Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.ParseStream(System.IO.Stream)
Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(System.IO.Stream)
Inner Exception 1:
JsonReaderException: '{' is an invalid start of a property name. Expected a '"'. LineNumber: 2 | BytePositionInLine: 4
It began when I started to use VS Code instead of Visual Studio which I normally use. The project however can run successfully on another Windows machine that's only ever run Visual Studio. I've tried a few things and I'm out of ideas. Here are the steps I have tried:
appsettings.json
, appsettings.Development.json
and launchSettings.json
do not have syntax errors as resolved in this thread
.csproj
args
value is a string array of size [1]. The [0] position is used and contains the string %LAUNCHER_ARGS%
. The environment variable does not appear in app.config
or within Windows. I confirmed args
is still the same and functions with the test pure template project.Not to sound like a broken record, but anyone facing this issue, please ensure that your appsettings.json is properly formatted.
I found that in my case, escape characters were not properly set in my connection string. Instead of having .\\MSSQLSERVER, I had .\MSSQLSERVER.
If you have a test instance on your local machine, kindly take out the connection string for the cloud and replace it with that of the local machine (which should be simpler) and that should lead you in the right direction.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With