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

同一解决方案下两个.NET Core项目触发请求匹配多端点异常

问题根因

这个异常和两个项目的监听端口没有任何关系,属于单进程内部的ASP.NET Core路由注册冲突,核心原因是你启动的监听localhost:7000的API进程中,同时加载了API和example.API两个项目的程序集。
ASP.NET Core默认会扫描进程内所有已加载的程序集,把所有符合要求的Controller(继承ControllerBase、标记了[ApiController]等特性)的接口路由全部注册到当前进程的路由表中,哪怕两个Controller来自不同的程序集,只要路由规则重合,就会抛出你遇到的AmbiguousMatchException歧义匹配异常。

卸载example.API项目后问题仍然存在的原因

通常是以下两种情况导致:

  • 你没有清理API项目的历史编译输出,API项目的bin输出目录中仍然残留着之前编译生成的example.API.dll文件,进程启动时会默认加载同目录下的所有dll文件,导致example.API的Controller仍然被扫描注册
  • 你之前在API项目中添加过对example.API项目的引用,卸载项目时没有删除API项目.csproj文件中的项目引用配置,编译时仍然会自动将example.API.dll复制到输出目录

修改单项目路由后恢复正常的原因

修改其中一个项目的路由后,两个接口的路由规则不再重合,自然不会触发歧义匹配的校验逻辑,但这属于治标不治本的方案,本质上你的API进程中还是加载了多余的example.API程序集,只是没有触发路由冲突而已。

解决方案

  • 彻底删除两个项目根目录下的bin、obj编译缓存目录
  • 打开API项目的.csproj配置文件,检查并删除所有对example.API的项目引用或dll引用配置
  • 启动项目前,确认没有残留的旧dotnet运行进程占用端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:24:02