问题描述
{ "message": "出现错误。", "exceptionMessage": "找到了多个与 URL 匹配的控制器类型。如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况。\r\n\r\n请求已找到下列匹配的控制器类型: \r\nTomatoApi.Controllers.PCVersionController\r\nTomatoApi.Controllers.VersionController", "exceptionType": "System.InvalidOperationException", "stackTrace": " 在 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetDirectRouteController(IHttpRouteData routeData)\r\n 在 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request)\r\n 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()" }
原因分析
有两个路由发生了冲突,如果只有一个就没问题了。
这个是我写的路由:
这个是伙伴写的路由:
而WbeApi.config中写的是默认路由DefaultApi
两个路由名称一样,所以发生了冲突,因为我们都想请求同一个Url地址,如图:
解决方法(有两个)
所以我改了一下自己的路由名称就好了,如图:
或者还有一种方法:重新添加一个路由定向,如图:
如果帮助到了你,不要忘了点赞哟。