我有一个针对ASP.NET 4.5.2的.NET核心项目。我的项目中有一些旧组件需要web.config来配置,我不能将它们迁移到新的appsettings.json。现在,我正在开发并以控制台模式运行应用程序,但它将在生产中托管在IIS中。我的问题是,我是否必须同时维护app.config和web.config?当我构建应用程序时,我只在包含MyProject.exe.config内容的输出文件夹中看到app.config,但是当我发布它时,我看到了输出文件夹中的MyProject.exe.config和web.config。
发布于 2017-02-16 13:24:08
web.config将被IIS读取,并且必须在Kestrel前面配置IIS作为反向代理的行为方式(我想您是如何托管它的)。例如,如果您希望IIS转发Kerberos标识,那将仍然是配置它的唯一位置,因为它实际上是IIS配置:<aspNetCore ... forwardWindowsAuthToken="true"/>
--所以我会说,是的,如果您想要在IIS后面托管,就必须维护web.config。然后,对于所有与IIS无关的内容,我使用的是一个一直使用的appsettings.json,当直接到达Kestrel时,它在dev中使用,但在IIS后面的时候也是如此。支持这两者,在您的配置中(在Kestrel前面作为反向代理的IIS )是有意义的,而且是正常的,您只需要正确地分离驱动IIS (->web.config)的内容和驱动网站逻辑(->appsettings.json)的内容。
发布于 2017-02-16 14:06:04
虽然在IIS后面运行Kestrel时确实需要一个web.config,但web.config只用于配置IIS。如果您正在运行Asp.Net核心,那么对于您现有的dlls来说,访问web.config中的设置是不容易的。您可以在这里了解更多信息:Access Web.config settings in Asp.Net Core App?
https://stackoverflow.com/questions/42274574
复制相似问题