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

ASP.NET Core应用部署IIS后根路径无法正常跳转问题排查

IIS根路径显示默认页、/home正常的排查方案
  • 检查默认文档优先级
    打开站点「默认文档」设置,确认IIS原生默认文档(如Default.htm、Default.aspx)是否排在ASP.NET Core相关入口(如index.html)之前。如果是,IIS会优先尝试加载这些文件(哪怕不存在也会触发默认页逻辑),需将ASP.NET Core相关入口移至列表顶部,或删除不需要的IIS原生默认文档。

  • 核查web.config重写规则
    确认站点web.config中的ASP.NET Core重写规则是否完整,重点确保非文件/非目录请求能转发至应用:

    <rewrite>
      <rules>
        <rule name="Forward to ASP.NET Core" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="." />
        </rule>
      </rules>
    </rewrite>
    

    若该规则被修改或缺失,IIS会直接处理根路径请求,返回默认页。

  • 检查站点根目录文件
    查看站点物理路径下是否存在Default.htm、index.htm等IIS默认文档文件(哪怕是空文件),这类文件会被IIS优先加载,导致请求无法转发至ASP.NET Core,需删除或重命名。

  • 验证应用程序池配置
    确认应用程序池的.NET CLR版本设置为「无托管代码」,ASP.NET Core应用依赖此配置让IIS做反向代理;同时检查应用池是否正常运行,可通过事件查看器查看应用程序日志排查崩溃情况。

  • 查看ASP.NET Core启动日志
    修改web.config开启日志:

    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    

    访问根路径后查看日志,若日志中无根路径请求记录,说明IIS未转发请求;若有记录,需检查应用启动时路由注册是否异常(虽当前路由配置正常,但需确认启动流程中未被覆盖)。

  • 确认URL重写模块状态
    在IIS管理器「模块」中检查URL重写模块是否已安装且启用,该模块是转发请求至ASP.NET Core的关键,若缺失或禁用会导致重写规则失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:00:02