web.config,app.config或两者兼而有之?

时间:2017-02-16 12:54:09

标签: asp.net-core

我有一个针对.NET 4.5.2的ASP.NET Core项目。我在项目中有一些旧组件需要web.config进行配置,我无法将它们迁移到新的appsettings.json。现在我正在开发并以控制台模式运行应用程序,但它将在生产中的IIS中托管。我的问题是,我是否必须同时维护app.config和web.config?当我构建应用程序时,我只在输出文件夹中看到具有app.config内容的MyProject.exe.config,但是当我发布它时,我在输出文件夹中看到MyProject.exe.config和web.config。

2 个答案:

答案 0 :(得分:1)

虽然在IIS后面运行Kestrel时需要web.config,但该web.config仅用于配置IIS。如果您运行的是Asp.Net Core,则现有的dll无法轻松访问web.config中的设置。您可以在此处了解详情:Access Web.config settings in Asp.Net Core App?

答案 1 :(得分:0)

IIS将读取

web.config,并且必须配置IIS在Kestrel前面作为反向代理的行为(我想你如何托管它)。例如,如果您希望IIS转发Kerberos身份,那么它仍然是唯一可以配置它的地方,因为它实际上是一个IIS配置:<aspNetCore ... forwardWindowsAuthToken="true"/>所以我会说,是的,您必须维护一个Web。如果你想在IIS后面托管,请配置。然后,对于与IIS无关的所有其他内容,我使用的是始终使用的appsettings.json,直接到达Kestrel时在dev中,但在IIS后面也是如此。在您的配置中支持这两者(IIS作为Kestrel前面的反向代理)是有道理的并且是正常的,您只需要正确分离驱动IIS的内容( - &gt; web.config)以及驱动网站逻辑的因素( - &GT; appsettings.json)。