为什么我们在 ASP .NET 5 wwwroot 中需要 web.config?

Why do we need web.config in ASP .NET 5 wwwroot?

在 ASP .NET 5 中,Configuration 发生了翻天覆地的变化。我们不再有 web.config 文件。相反,我们可以使用 JSON 和其他选项,具体取决于我们在 Startup class 中的设置方式。与 web.config 不同,此类配置通常不会进入 wwwroot,并且不存在客户端可以访问它的危险。

然而,在 ASP .NET 5 项目模板中,wwwroot 中有一个 web.config 文件,其内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>
</configuration>

在我看来,这可能是托管服务器在运行时寻找的东西,与应用程序配置无关。

任何人都可以阐明为什么需要这个以及它是如何工作的吗?

Web.config 严格用于 IIS 配置。除非托管在 IIS 中,否则不需要它。当您从命令行 运行 应用程序时不使用它。

过去 Web.config 用于 IIS 配置和应用程序配置和设置。但是在asp.net5中它根本不被应用程序使用,它只用于IIS配置。

应用程序与 IIS 的分离是使跨平台成为可能的一部分。