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

资源ID含连字符时WebAPI Get请求突发500.19错误求助

解决IIS 500.19:无法添加重复集合项‘aspNetCore’的问题

我之前也碰到过一模一样的坑!本来好好的WebAPI突然就爆这个500.19错误,改App URL建个新应用就暂时恢复,但删了原应用又复发,折腾了好一阵才搞清楚根源——这本质是IIS的配置继承冲突,或者旧应用残留的配置和ASP.NET Core的托管配置重复了。下面是我亲测有效的解决办法:

1. 先检查应用程序池的核心配置

ASP.NET Core应用必须用无托管代码的应用程序池:

  • 打开IIS管理器,找到你的应用对应的应用程序池
  • 右键→“高级设置”,把“.NET CLR版本”改成“无托管代码”
  • 重启应用程序池和站点,很多时候这一步就能直接解决问题

2. 清理Web.config里的重复配置

如果应用的web.config继承了上层站点的handlers/modules,就会出现重复注册:

  • 打开项目根目录的web.config,找到<system.webServer>下的<handlers>节点,在开头添加<clear />,先清空继承的处理程序,再注册ASP.NET Core的handler:
    <handlers>
      <clear />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    
  • 同样,<modules>节点也可以加<clear />避免重复:
    <modules>
      <clear />
      <add name="AspNetCoreModuleV2" />
    </modules>
    
  • 保存后重新发布或者重启站点

3. 排查IIS全局配置的残留项

有时候旧应用删除后,IIS的全局配置文件applicationHost.config里还留着重复的注册:

  • 找到路径C:\Windows\System32\inetsrv\config\applicationHost.config(修改前一定要备份!)
  • 用文本编辑器打开,搜索aspNetCore,看看有没有重复的<add>项
  • 如果有,删除多余的重复项,保存后重启IIS服务(命令行执行iisreset)

4. 彻底清理旧应用的残留文件

有时候原应用的物理路径里还留着旧的web.config或者临时文件:

  • 找到原应用的物理目录,删除所有文件(包括隐藏的.vs或者logs文件夹)
  • 重新发布最新的WebAPI代码到该目录,再创建应用程序

额外排查技巧

  • 开启IIS的失败请求跟踪,能看到更详细的错误堆栈,定位到底是哪个配置节点冲突
  • 查看ASP.NET Core的日志(默认在logs文件夹),确认托管进程是否正常启动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:14:10