托管 .net 核心应用程序在使用添加 json 到配置时给出 502.5

hosting .net core app gives 502.5 on using add json to configuration

我正在尝试在使用 IIS 的 A2hosting 共享主机 windows 选项上托管 .net 核心应用程序。但是,一旦我在秘密管理器的 .csproj 文件中使用 UserSecretsId,我就会收到 502.5 错误。这很奇怪,因为生产不使用秘密管理器。在做了一些挖掘之后,我发现在我的 .csproj 文件中添加以下行再次摆脱了 502.5 错误:

<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>

现在,我需要将我的秘密存储在 web 文件夹之外。我正在尝试在 program.cs 中使用以下代码进行设置:

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseConfiguration(new ConfigurationBuilder()
                        .AddJsonFile("<path here>")   // line causing issue
                        .Build())
        .Build();

此代码返回错误 502.5。当我单独注释掉 AddJsonFile 行时,错误消失了。我试图了解 AddJsonFile.

有什么问题

总之,问题似乎围绕着 IConfiguration(与秘密管理器和 AddJsonFile)。

知道如何让 AddJsonFile 函数正常工作吗?访问外部 json 文件的任何好的替代方法?我正在尝试一些不像读取 while 文件并将其序列化为 AddInMemoryCollection 函数那样混乱的东西。记录显示为 502.5 的错误的方法是什么?我注意到对于这个错误,中间件不会 运行。这意味着我不能在其中使用 ILogger。

AddJsonFile("<path here>") 显示有效路径时,不再显示此错误。我可以使用重载 AddJsonFile("<path here>", true),如果找不到文件,它会忽略此函数。这样,一旦路径有效,502.5 就会得到解决。然而,无效路径如何显示 502.5 错误仍然是个谜。我也不确定这是否与配置包有关。