我为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并尝试阅读它?我该如何解决这个问题?
答案 0 :(得分:0)
似乎.UseApplicationInsights()
扩展名是尝试访问加密文件的扩展名。从管道中删除它解决了这个问题。