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

ASP.NET Core 3.1控制器路由用api前缀IISExpress报500.19错误

故障解决方案

HTTP Error 500.19 属于IIS/IIS Express专属的配置类错误,路由仅含api关键词时触发、Kestrel运行正常,本质是IIS Express的路径匹配规则和ASP.NET Core路由存在冲突,可按以下优先级排查解决:

  • 检查项目根目录、wwwroot目录下是否存在名为api的物理文件夹或同名文件
    IIS Express会优先将请求匹配到物理资源而非转发给ASP.NET Core托管程序,存在对应物理资源时会触发映射权限错误,删除或重命名该资源即可修复。
  • 清理当前解决方案的IIS Express本地配置
    两个配置相同的解决方案表现不一致,基本为对应解决方案的专属IIS Express配置残留冲突项导致。直接删除解决方案根目录下的.vs隐藏文件夹,重启Visual Studio重新运行项目即可。.vs目录存储当前解决方案独有的applicationhost.config配置,可能残留了历史测试产生的api路径相关虚拟目录、处理程序映射或URL重写规则。
  • 校验Web.config的ASP.NET Core处理程序配置
    确保项目根目录的Web.config中处理程序注册配置正确,所有请求都会被转发到ASP.NET Core托管层:
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
    
    重点确认resourceType属性值为Unspecified,如果设置为File或Directory,IIS会优先校验请求路径对应的物理资源是否存在,无对应物理资源的api路由会直接抛出500.19错误。
  • 排查全局IIS Express配置的冲突规则
    以上操作均无效时,打开IIS Express全局配置文件(默认路径为C:\Users\<当前系统用户名>\Documents\IISExpress\config\applicationhost.config),搜索是否存在全局注册的api路径相关重写规则、处理程序映射或虚拟目录,删除冲突配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 06:36:05