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

ASP.NET Core进程内托管IIS:web.config返回404.8而非通用404如何解决?

解决ASP.NET Core进程内托管IIS时web.config返回特定404的问题

要让请求web.config时返回通用HTTP 404而非暴露技术栈的404.8错误,需要调整IIS的请求过滤配置并确保错误响应由ASP.NET Core处理,具体步骤如下:

  • 移除IIS对web.config的隐藏段限制
    在应用根目录的web.config中,找到<system.webServer>节点,添加或修改请求过滤配置,移除默认的web.config隐藏段规则,让请求能到达ASP.NET Core应用:

    <system.webServer>
      <security>
        <requestFiltering>
          <hiddenSegments>
            <remove segment="web.config" />
          </hiddenSegments>
        </requestFiltering>
      </security>
      <!-- 保留原有其他配置,比如<aspNetCore>节点等 -->
    </system.webServer>
    
  • 配置IIS传递ASP.NET Core的错误响应
    继续在web.config的<system.webServer>节点中添加httpErrors配置,确保IIS不会将ASP.NET Core返回的通用404替换为自身的特定错误页:

    <system.webServer>
      <httpErrors existingResponse="PassThrough" />
      <!-- 其他配置 -->
    </system.webServer>
    

完成上述修改后,重启IIS站点,再次请求web.config时,请求会先绕过IIS的隐藏段拦截,到达ASP.NET Core应用后由Kestrel返回通用的HTTP 404响应,避免泄露技术栈信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:19:56