对.NET Core中的web.config感到困惑

Rei*_*l-- 4 .net web-config asp.net-core

关于web.config和.NET Core有很多矛盾的说法。

此外,我刚刚将几乎全新的.NET Core应用程序部署到Azure。在存储库中,没有web.config,但是当我在Kudu中浏览已部署的代码时,有一个web.config文件吗?


.NET Core中的web.config是怎么回事?您应该如何做非“定制应用程序配置”的东西?(例如,HTTP标头和其他HTTP级别配置)

Joe*_*Joe 5

在.NET Framework Web应用程序中,将web.config用于两个目的:

  1. 存储Web应用程序的配置。

  2. 存储用于承载应用程序的IIS的配置(system.webServer)。

在.NET Core Web应用程序中,您至少有两个选择来存储应用程序配置:

  • 使用.NET Core配置提供程序,通常将其与json配置文件一起使用。

  • System.Configuration.ConfigurationManager NuGet包与.NET Core的最新版本(我认为是2.0+)一起使用。使用的优点之一System.Configuration.ConfigurationManager是可以在与.NET Core和.NET Framework兼容的.NET Standard 2.0库中使用。

如果选择System.Configuration.ConfigurationManager在.NET Core Web应用程序中使用,则需要在Visual Studio项目中添加一个app.config(不是web.config)文件。构建此项目时,它将被复制到输出目录并重命名为appName.dll.config

如果要在IIS中托管.NET Core Web应用程序,则仍需要一个web.config具有IIS配置的文件(system.webServer元素)。也就是说,您的应用程序可能同时需要app.Configweb.config

我个人更喜欢使用System.Configuration.ConfigurationManagerapp.configXML配置文件,有以下几个原因,包括.NET框架,但事实上,它很容易注释掉XML的位,等等。当然情况因人而异兼容性。

  • 你值得我对这句话“你需要添加一个app.config(而不是web.config)”投赞成票 (2认同)