gpt4 book ai didi

c# - 为什么 web.config 是在发布时创建的,而不是在 Asp.Net Core API 中构建项目时创建的?

转载 作者:行者123 更新时间:2023-12-05 05:02:39 29 4
gpt4 key购买 nike

我有 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 而无需手动创建它?

最佳答案

据我所知,web.config 用于告诉 IIS 如何使用 asp.net core 模块和处理程序来托管 asp.net core 应用程序。当您在 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>

关于c# - 为什么 web.config 是在发布时创建的,而不是在 Asp.Net Core API 中构建项目时创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62050503/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com