2017-02-16 69 views
2

我有一个针对.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。web.config,app.config或两者兼而有之?

回答

0

web.config将被IIS读取,并且必须配置IIS如何在Kestrel前表现为反向代理(我想你是如何托管它的)。例如,如果您希望IIS转发Kerberos身份,那么它仍然是唯一配置它的地方,因为它实际上是一个IIS配置:<aspNetCore ... forwardWindowsAuthToken="true"/>所以我会说,是的,如果您想要,您必须维护一个web.config在IIS后面托管。然后,对于其他所有与IIS无关的内容,我使用的是一直使用的appsettings.json,当直接到达Kestrel时在开发中使用,而且在IIS后面驻留。在您的配置中(IIS作为Kestrel前面的反向代理)支持这两种方法是有意义的,并且是正常的,您只需要正确分离驱动IIS( - > web.config)的驱动程序,以及驱动网站逻辑的驱动程序 - > appsettings.json)。

1

尽管在IIS后面运行Kestrel时需要web.config,但该web.config只能用于配置IIS。如果您正在运行Asp.Net Core,则现有的dll无法访问web.config中的设置。你可以在这里了解更多:Access Web.config settings in Asp.Net Core App?

相关问题