Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我对.NETCore中的web.config感到困惑_.net_Asp.net Core_Web Config - Fatal编程技术网

我对.NETCore中的web.config感到困惑

我对.NETCore中的web.config感到困惑,.net,asp.net-core,web-config,.net,Asp.net Core,Web Config,关于web.config和.NET Core有许多相互矛盾的说法 说它不见了的地方。 一些地方说它已经消失了,但现在又回来了。 表示不再需要的位置,但您可以手动创建: 此外,我刚刚在Azure上部署了一个全新的.NET核心应用程序。 在存储库中没有web.config,但是当我在Kudu中探索部署的代码时,有一个web.config文件吗? .NETCore中的web.config是怎么回事? 你应该怎么做非定制的应用程序配置?(例如HTTP头和其他HTTP级别配置)这

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

  • 说它不见了的地方。
  • 一些地方说它已经消失了,但现在又回来了。
  • 表示不再需要的位置,但您可以手动创建:
此外,我刚刚在Azure上部署了一个全新的.NET核心应用程序。 在存储库中没有web.config,但是当我在Kudu中探索部署的代码时,有一个web.config文件吗?
.NETCore中的web.config是怎么回事?
你应该怎么做非定制的应用程序配置?(例如HTTP头和其他HTTP级别配置)

这可能不正确。请随意更正,但以我的理解方式

web.config用于向IIS等托管软件提供一些信息,以及一些配置详细信息,以帮助正确运行应用程序

在dotnet核心中 在IIS等托管软件和Web应用程序之间有一个层,称为Kestrel

红隼是两者之间的代理人。你看到的默认web.config,如果你看一下里面,你会看到默认代码,基本上是说,我是一个dotnet核心应用程序,使用dotnet核心运行时来运行我。您仍然可以将config放在那里告诉IIS如何工作,我专门使用它来增加文件上载大小和windows身份验证


我将使用中间件配置HTTP头。

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

  • 存储web应用程序的配置

  • 存储承载应用程序的IIS的配置(
    system.webServer
    元素)

  • 在.NET核心Web应用程序中,存储应用程序配置至少有两种选择:

    • 使用,通常与json配置文件一起使用

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

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

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


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

    阅读一些来自谷歌的
    web.config
    示例,你应该注意到

  • ASP.NET/WCF 2.x/4.x使用它来存储配置(像
    这样的标记)
  • IIS使用它来存储配置(像
    这样的标记)
  • 因此,迁移到ASP.NET Core只会使第一部分变得过时,您只需对这部分知识说再见


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

    这句话“你需要添加一个app.config(而不是web.config)”值得我投票支持