0

我正在尝试在使用 IIS 的 A2hosting 共享托管 Windows 选项上托管 .net 核心应用程序。但是,一旦我UserSecretsId在 .csproj 文件中使用了秘密管理器,我就得到了 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。

4

1 回答 1

0

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

于 2018-05-11T06:15:44.117 回答