WebHostBuilder错误加密application.json

时间:2017-06-13 10:56:52

标签: c# asp.net encryption asp.net-core

我为AddEncryptedJson创建了IConfigurationBuilder扩展名。我在startup.cs中使用以下方式:

var builder = new ConfigurationBuilder()
    .SetBasePath(environment.ContentRootPath)
    .AddEncryptedJson("appsettings.json")
    .AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true)
    .AddEnvironmentVariables();
Configuration = builder.Build();

如果appsettings.json文件尚未加密,则对其进行加密,并对其进行解密以读取其设置。 Startup.cs中的所有内容都按预期工作。

然而,当执行跳回Program.cs时:

public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .UseApplicationInsights()
        .Build();

    host.Run();
}

它会抛出System.FormatException

System.FormatException: 'Could not parse the JSON file. Error on line number '0': '�(�<�G#[v��_K���'.'

Program.cs是否也在寻找appsettings.json并尝试阅读它?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

似乎.UseApplicationInsights()扩展名是尝试访问加密文件的扩展名。从管道中删除它解决了这个问题。