当前位置: 首页 > 编程语言 > C#

名为“DefaultRoute”的路由已经存在于路由集合中,路由名称必须是唯一的分享

时间:2023-04-11 10:37:01 C#

路由集合中已经存在名为“DefaultRoute”的路由。路由名称必须是唯一的当我将ASP.NETWebAPI解决方案发布到远程IIS服务器时,出现错误:消息:System.ArgumentException:名为“DefaultRoute”的路由已在路由集合中。路由名称必须是唯一的。我看到这个线程有同样的问题,但没有任何效果。我试过:删除所有项目中的所有bin/obj文件夹。清理/重建在发布重命名项目之前从远程服务器删除文件无论如何,我可以找出是否有陈旧文件。我确实重命名了一些文件,我听说这可能会导致问题?不确定这是否重要,但我正在使用ASP.NETWebApi和RestSharp进行休息呼叫。这就是我的Global.asax初创公司所拥有的:它是多余的吗?AreaRegistration.RegisterAllAreas();WebApiConfig.Register(GlobalConfiguration.Configuration);RouteConfig.RegisterRoutes(RouteTable.Routes);我在设置路线时遇到了类似的问题。对我来说,解决方案就在这里:https://stackoverflow.com/a/28503674/1496138。问题是我后来重命名了项目文件——以前名称的旧DLL文件仍然存在于/bin目录中,自动启动配置也运行它们。路由通常配置在三个位置之一。global.asax文件,RouteConfig.cs文件(通常在/Areas/{areaname}中的/App_Start或{areaname}AreaRegistration.cs文件。这些地方必须有重复的路由名称。它给你重名,尝试搜索“DefaultRoute”在您的项目中,它可能会弹出。更改其中一个的名称,它应该可以解决您的问题。当我使用RouteAttribute显式设置路由名称代码时遇到此错误,当我尝试设置路由时,它将采用不同的参数,具体取决于它是使用HTTPGET还是HTTPPOST调用:[HttpGet][Route("MyApiMethod",Name="MyApiMethod")]publicMyApiMethodPropertyData(...){...}//错误:导致“System.ArgumentException:名为‘DefaultRoute’的路由已经在路由集合中。路由名称必须是独一无二的。”[HttpPost][Route("MyApiMethod",Name="MyApiMethod")]publicMyApiMethodPropertyData(...){...}这对我来说不是很明显,但事实证明问题正是错误消息内容说明:我有两条具有相同Name值的路由。只需将这些Name值更改为唯一(不更改路由本身或方法签名)即可解决问题:[HttpGet][Route("MyApiMethod",Name="MyApiMethod-GET")]publicMyApiMethodPropertyData(...){...}[HttpPost][Route("MyApiMethod",Name="MyApiMethod-POST")]publicMyApiMethodPropertyData(...){...}检查Global.asax两次,您已定义。AreaRegistration.RegisterAllAreas();卸载项目并重新加载项目。我也有同样的问题。如果您使用IIS8.X,您应该检查新功能。您的应用程序池启动模式应该是“高级设置”中的“AlwaysRunning”。您的应用程序PreLoadEnabled应在高级设置中设置为“True”。希望这可以帮助。只需清洗并重建!它解决了我的问题清理解决方案/项目对我不起作用。我最终导航到bin目录并删除目录中的所有文件,因为它绝对是一团糟,这解决了我的问题。以上是C#学习教程:名为“DefaultRoute”的路由已经存在于路由集合中。路由的名称必须是唯一的,以共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: