我在ASP.CORE 2.0
中遇到program.cs新版本的问题这是我的代码
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseKestrel()
.UseStartup<Startup>()
.UseConfiguration(new ConfigurationBuilder().AddCommandLine(args).Build())
.Build();
}
当我开始项目时,我有一个错误
System.FormatException: 'Could not parse the JSON file. Error on line number '0': ''.'
如何解决?
答案 0 :(得分:9)
我在另一个线程中遇到了类似的问题,并将解决方案发布到了那里:Application Startup Failure with Json read Error。如果它消失了,也要张贴在这里。
我遇到了同样的问题。就我而言,我将开始实施应用程序的机密,但半途而废。我的secrets.json
文件被保留链接,但使用无效的JSON。
检查您的.csproj
,看看是否在<UserSecretId>
下设置了<PropertyGroup>
属性。如果已设置,除了BuildWebHost()
文件之外,secrets.json
还将浏览'%APPDATA%\Microsoft\UserSecrets\{secretId}'
中的appsettings.json
文件。这两个文件中的错误都会导致该方法失败,但不会告诉您该文件是哪个文件。
我的解决方案是删除<UserSecretId>
属性或
答案 1 :(得分:9)
appsettings.json格式不正确可能会发生
在我的情况下,我具有以下配置并收到错误
{
"ConnectionStrings": {
"TransferDBConnection":
"Server=INGBTCPIC5DT04D;Database=TransferDB;Trusted_Connection=true;
},
***{***
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
理想情况下,应该多加{引起此问题
{
"ConnectionStrings": {
"TransferDBConnection":
"Server=INGBTCPIC5DT04D;Database=TransferDB;Trusted_Connection=true;"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
答案 2 :(得分:3)
您的appSettings.json
文件(或您正在使用的任何配置)格式正确吗?如果开头有无效字符,WebHost.CreateDefaultBuilder
将无法正确解析它。当复制/粘贴在文件开头添加空格时,我看到了这个问题。
答案 3 :(得分:3)
我的一个复杂 API 遇到了同样的问题,遗憾的是我浪费了几个小时来找到问题。
首先检查您的 appsettings.json
的格式是否正确为标准 JSON。
我的问题是我在 appsettings.json 文件中错误地输入了这样的一些字符(对我来说,'ttings' 字符导致了这个问题)
还要检查您的所有 json
文件是否不为空。一个标准的 json
应该至少有两个花括号。
答案 4 :(得分:2)
我遇到了这个问题,原因是由于某些原因,Visual Studio会在文本之前保存带有一些不可见元数据的文件,因此JSON阅读器无法解析它。
您需要File -> Save As -> (Choose UTF-8 Without BOM)
。
答案 5 :(得分:1)
相同的问题,可以通过从ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.sendgrid.net',
port: '587',
authentication: :plain,
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: 'my-app.herokuapp.com',
enable_starttls_auto: true
}
中删除 <UserSecretsId> </UserSecretsId>
来解决。
这是错误的用户密码配置
答案 6 :(得分:1)
在这种情况下,我在appsettings.json中(在上方) "ConnectionStrings" :
之前放置了另外的 {
我从另一个文件复制了此文件,并假设"ConnectionStrings" :
必须放在大括号{}中
之前
...
},
{ //<-- this one the culprit
"ConnectionStrings": {
"Dapper": "Server=.;Database=Dapper;Trusted_Connection=True;"
},
之后
...
},
"ConnectionStrings": {
"Dapper": "Server=.;Database=Dapper;Trusted_Connection=True;"
},
答案 7 :(得分:1)
就我而言,我在解决方案中添加了用户机密,后来删除了包括{}在内的所有内容,因此遇到了这个问题。请确保文件中的内容使用正确的JSON格式。或者,如果文件中不需要任何信息,请尝试提供空对象{}。
答案 8 :(得分:0)
检查您的json中是否有任何隐藏空格或标签。 您可以使用https://jsonlint.com/来验证您的json格式。
答案 9 :(得分:0)
我遇到了同样的问题。
我发现此问题似乎是由我的appsettings.json
文件引起的。
我从另一个地方复制了一个版本来解决此问题。
答案 10 :(得分:0)
检查您的 appsettings.json 文件。这个问题是因为您的文件没有逗号、方括号、大括号或其他标点符号。
答案 11 :(得分:-1)
只需将ConnectionStrings放在appsetting文件中,然后运行迁移命令即可。