名为"MS_attributerouteWebApi"的路径已在路径集合中

joy*_*ym8 19 c# asp.net-mvc asp.net-mvc-4 asp.net-web-api

我最近添加Microsoft.AspNet.WebApi.WebHost了一个MVC WebAPI项目,它允许我[Route("api/some-action")]在我的操作中使用该属性.我使用这篇文章解决了一些错误但无法解决下面的第三个错误.如果我做错了,请在下面添加已解决的错误以获得反馈.

第一个错误:在控制器'X'上找不到与名称'some-action'匹配的操作
解决方案:添加config.MapHttpAttributeRoutes();到WebApiConfig.cs Register方法.

第二个错误:System.InvalidOperationException该对象尚未初始化.确保在所有其他初始化代码之后在应用程序的启动代码中调用HttpConfiguration.EnsureInitialized().
解决方案:添加GlobalConfiguration.Configure(WebApiConfig.Register);到Global.asax.csApplication_Start

第三个错误:System.ArgumentException:名为"MS_attributerouteWebApi"的路由已在路径集合中.路线名称必须是唯一的.
解决方案 =?

我已经尝试过根据这篇文章清理和删除bin文件夹中的所有DLL .

Bra*_*ath 33

我有一个类似的问题,它与我的部分复制粘贴错误有关,我在我的WebApiConfig.cs文件中添加了这行的副本:

config.MapHttpAttributeRoutes();

确保你只有其中一个.

  • 或像我一样,复制是在Global.asax.cs中使用GlobalConfiguration.Configure(config => config.MapHttpAttributeRoutes()) (2认同)

Joe*_*hao 12

Global.asax中,检查WebApiConfig.Register已调用函数的次数.


joy*_*ym8 6

解决了!WebApiConfig.Register(GlobalConfiguration.Configuration);从Global.asax.cs中删除了该行Application_Start.


Dav*_*rdi 5

我通过在复制新文件之前清理部署目录来解决.可能有一些旧文件尝试多次注册相同的根.