【问题标题】:Why is web.config getting created on publish not on build the project in Asp.Net Core API?为什么在发布时创建 web.config 而不是在 Asp.Net Core API 中构建项目?
【发布时间】:2020-09-14 22:19:33
【问题描述】:

我有 Asp.net Core 3.1 API 项目。当我构建它时,它不会创建任何 web.config 文件,但是当我在文件夹中使用 VS 2019 发布 API 时,它会创建一个 web.config 文件。 那么为什么它不在构建时创建 web.config(我认为它不应该创建,因为项目中没有 web.config 文件)但为什么它在发布时创建 web.config 文件?

编辑: 我正在尝试通过 Octopus 部署应用程序,因此我复制了 bin 文件夹内容,并且我还需要 web.config。所以暂时,我在项目中手动创建了web.config,然后构建项目。因此它将 web.config 复制到 bin 文件夹。那么这是正确的方法吗?或者有什么方法可以在bin文件夹中生成web.config而不需要手动创建?

【问题讨论】:

标签: c# asp.net-core asp.net-core-webapi visual-studio-2019 asp.net-core-3.1


【解决方案1】:

据我所知,web.config 用于告诉 IIS 如何使用 asp.net 核心模块和处理程序来托管 asp.net 核心应用程序。在 VS 中构建和测试应用程序时,无需创建 web.config,因为它将读取 launchSettings.json 而不是 web.config。

Web.config是一个服务器配置文件,用于配置ASP.NET Core Module。

web.config 文件可能提供控制活动 IIS 模块的其他 IIS 配置设置。有关能够使用 ASP.NET Core 应用处理请求的 IIS 模块的信息,请参阅IIS modules 主题。

Asp.net core web.config 内容(没有这个文件,我们无法直接在 IIS 上托管 asp.net core 应用程序)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\basket.api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
           </aspNetCore>
    </system.webServer>
  </location>
</configuration>

【讨论】:

  • 我们可以在构建时创建 web.config 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 2016-04-10
  • 2019-05-23
  • 2016-11-08
  • 2021-04-27
  • 2012-03-12
相关资源
最近更新 更多