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

时间:2018-05-03 07:22:58

标签: iis asp.net-core-2.0 shared-hosting secret-manager asp.net-core-configuration

我正在尝试在使用IIS的A2hosting共享主机窗口选项上托管.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文件?我正在尝试一些不会像读取文件并将其序列化为AddInMemoryCollection函数那样混乱的东西。是一种记录错误显示为502.5的方法吗?我注意到,由于这些错误,中间件不会运行。这意味着我无法在其中使用ILogger。

1 个答案:

答案 0 :(得分:0)

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