You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8发布未生成web.config及IIS资源问题求助

解决发布ASP.NET Core项目时未生成web.config和IIS资源的问题

1. 确认项目类型

只有ASP.NET Core Web项目(包括MVC、Web API、Razor Pages、Blazor Server等)在发布时才会自动生成web.config和IIS相关配置。如果是控制台应用、桌面应用等非Web项目,未生成属于正常现象。

2. 检查项目文件(.csproj)配置

打开项目的.csproj文件,查找以下配置项:

  • 若存在<GenerateWebConfig>False</GenerateWebConfig>,将其改为<GenerateWebConfig>True</GenerateWebConfig>
  • 若存在<PublishIISAssets>False</PublishIISAssets>,将其改为<PublishIISAssets>True</PublishIISAssets>

默认情况下,ASP.NET Core项目会自带这些配置,若之前被手动修改则会导致资源不生成。

3. 检查VS发布配置文件

打开Visual Studio的发布配置文件(位于Properties/PublishProfiles/目录下的.pubxml文件):

  • 确认没有<GenerateWebConfig>False</GenerateWebConfig>这类禁用生成的配置项
  • 确保文件夹发布的配置(<PublishProtocol>FileSystem</PublishProtocol>)未额外禁用IIS资源生成

4. 调整dotnet publish命令参数

执行命令时避免使用跳过资源生成的参数,也可显式指定生成规则:

dotnet publish MyProject.csproj -c Release /p:GenerateWebConfig=True

5. 手动添加web.config(应急方案)

若以上方法均无效,可手动创建web.config文件放入发布目录,示例内容如下(替换MyProject.dll为你的项目输出DLL名称):

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

内容的提问来源于stack exchange,提问作者Post Impatica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:52:10