【问题标题】:Am confused about web.config in .NET Core我对 .NET Core 中的 web.config 感到困惑
【发布时间】:2019-01-12 10:15:37
【问题描述】:

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

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


.NET Core 中的 web.config 发生了什么? 你应该如何做非自定义应用配置的东西? (例如 HTTP 标头和其他 HTTP 级别配置)

【问题讨论】:

    标签: .net asp.net-core web-config


    【解决方案1】:

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

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

    2. 为托管应用程序的 IIS 存储配置(system.webServer 元素)。

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

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

    如果您在 IIS 中托管 .NET Core Web 应用程序,您仍然需要一个带有 IIS 配置的 web.config 文件(system.webServer 元素)。 IE。您的应用程序可能需要app.Configweb.config

    就我个人而言,我更喜欢使用System.Configuration.ConfigurationManagerapp.config XML 配置文件,原因包括与 .NET Framework 的兼容性、很容易注释掉一些 XML 等事实。当然是 YMMV。

    【讨论】:

    • 你值得我对这句话投赞成票“你需要添加一个 app.config(不是 web.config)”
    【解决方案2】:

    阅读一些来自 Google 的 web.config 示例,您应该会注意到,

    1. ASP.NET/WCF 2.x/4.x 使用它来存储配置(<system.web> 等标签)。
    2. IIS 使用它来存储配置(<system.webServer> 等标签)。

    所以迁移到 ASP.NET Core 只会让第一个过时,你应该只和那条知识说再见。

    如果您在 IIS 上托管您的 Web 应用程序,那么仍然需要 web.config,因为您需要在那里进行初始设置来为 IIS/IIS Express 配置 ASP.NET Core 模块(如果您不这样做,dotnet publish 会生成这样一个文件)没有你自己的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      相关资源
      最近更新 更多