我正在尝试在A2hosting共享托管Windows选项上托管一个.net核心应用程序,该选项使用IIS。但是,一旦我在机密管理器的 .csproj 文件中使用了UserSecretsId
,我就会收到 502.5 错误。这很奇怪,因为生产不使用机密管理器。经过一些挖掘,我发现在我的.csproj文件中添加以下行可以再次摆脱502.5错误:
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
现在,我需要将我的机密存储在 Web 文件夹之外。我正在尝试在我的程序中使用以下代码.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 错误仍然是一个谜。我也不确定这是否与配置包有关。