名为“DefaultRoute”的路径已在路径集合中。 路线名称必须是唯一的
当我将ASP.NET WebAPI
解决方案发布到远程IIS Server
,我收到错误消息:
消息:System.ArgumentException:名为“DefaultRoute”的路由已在路径集合中。 路线名称必须是唯一的。
我看到这个线程有同样的问题,但它没有任何效果。 我试过了:
- 删除所有项目中的所有bin / obj文件夹。
- 清洗/重建
- 在发布之前从远程服务器上删除文件
- 重命名项目
无论如何,我可以找出是否存在陈旧文件。 我确实重命名了一些文件,我听说这可能会导致问题?
不确定这是否重要,但我使用ASP.NET WebApi和RestSharp进行rest调用。
这就是我的Global.asax startup
拥有的:它是多余的吗?
AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); RouteConfig.RegisterRoutes(RouteTable.Routes);
我已经设定路线遇到了类似的问题。 对我来说,解决方案在这里: https : //stackoverflow.com/a/28503674/1496138 。 问题是我后来重命名为项目文件 – 以前名称的旧DLL文件仍然存在于/ bin目录中,并且自动启动配置也运行它们。
路由通常配置为三个位置之一。 global.asax文件,RouteConfig.cs文件(通常位于/ App_Start或{areaname} AreaRegistration.cs文件中,位于/ Areas / {areaname}中。在这些位置必须有重复的路由名称。它给你重复的名称,尝试在你的项目中搜索“DefaultRoute”,它可能会跳出来。更改其中一个的名称,它应该解决你的问题。
当我使用RouteAttribute
显式设置路由名称的代码时,我遇到了这个错误,当我尝试设置一个路由时,根据是否使用HTTP GET或HTTP POST调用它将采用不同的参数:
[HttpGet] [Route("MyApiMethod", Name = "MyApiMethod")] public MyApiMethod PropertyData(...) { ... } // ERROR: Causes "System.ArgumentException: A route named 'DefaultRoute' is already in the route collection. Route names must be unique." [HttpPost] [Route("MyApiMethod", Name = "MyApiMethod")] public MyApiMethod PropertyData(...) { ... }
这对我来说并不是很明显,但问题结果正是错误信息所说的:我有两条具有相同Name
值的路由。 只需将这些Name
值更改为唯一(无需更改路径本身或方法签名)即可解决问题:
[HttpGet] [Route("MyApiMethod", Name = "MyApiMethod-GET")] public MyApiMethod PropertyData(...) { ... } [HttpPost] [Route("MyApiMethod", Name = "MyApiMethod-POST")] public MyApiMethod PropertyData(...) { ... }
- 检查Global.asax
两次你被定义了。
AreaRegistration.RegisterAllAreas();
- 卸载项目和重新加载项目。
我有同样的问题。 如果您使用IIS 8.X,则应检查新function。
- 您的应用程序池启动模式应为“高级设置”中的“AlwaysRunning” 。
- 您的应用程序PreLoad Enabled应在高级设置中设置为“True” 。
希望这可以帮助。
只需清理洗脱和重建!
它解决了我的问题
清理解决方案/项目对我来说不起作用。 我最终导航到bin目录并删除目录中的所有文件,因为它是一个绝对的混乱,这解决了我的问题。
- 导致此错误的原因是什么? 执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错
- 上载Excel工作表并将数据导入SQL Server数据库
- 具有持久性无知对象的持久性和域事件
- 返回自定义错误
- 在ASP.NET MVC站点中使用Lucene.Net进行目录锁定错误
- 如何在Entity Framework中使用条件聚合sql查询?
- MVC将Base64字符串转换为Image,但是…… System.FormatException
- 如何在我的自定义表而不是aspnet用户中使用哈希密码保存新记录?
- 如何通过.NETvalidationxml代码文件? +如果我使用XML序列化,我该怎么做?