Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 服务路由覆盖现有路由_Asp.net Mvc 4_Azure - Fatal编程技术网

Asp.net mvc 4 服务路由覆盖现有路由

Asp.net mvc 4 服务路由覆盖现有路由,asp.net-mvc-4,azure,Asp.net Mvc 4,Azure,一个MVC模式的新手,请接受我的建议 我在global.asax文件中定义了ServiceRoute RouteTable.Routes.Add(new ServiceRoute("rest", new WebServiceHostFactory(), typeof(ServiceName))); 此路由现在覆盖我的现有路由。为了更好地解释这一点,将其设置为“/rest/Controller/Action”。但这必须是“/Controller/Action” RouteEngine正在Ac

一个MVC模式的新手,请接受我的建议

我在
global.asax
文件中定义了
ServiceRoute

  RouteTable.Routes.Add(new ServiceRoute("rest", new WebServiceHostFactory(), typeof(ServiceName)));
此路由现在覆盖我的现有路由。为了更好地解释这一点,将其设置为
“/rest/Controller/Action”
。但这必须是
“/Controller/Action”

RouteEngine
正在Actions
calls
中追加我的
ServiceRoute


如何设置精确的映射。

您必须使用约束,并按正确的顺序注册路由

你可以得到一份工作

阅读时请记住,MapServiceRoute方法已消失,注册服务的方式是您选择的


您不需要实现IRouteCOnstraint。您可以使用正则表达式。

如果我不必使用
irouteConstant
的话,谢谢您的输入。然后我应该像
routes.IgnoreRoute(“{rest}”)那样编写代码。如果我错了,请纠正我不!每个路线图都定义了“谁”来处理匹配的url。路由系统尝试匹配地图注册顺序中的url。第一个匹配的路由决定“谁”处理它,并且不再检查更多的路由。IgnoreRoute是一个特殊的映射,这意味着“noone”将处理该url,这样url将被丢弃,不再检查任何路由。这用于.axd、.asmx或网站中的任何其他特殊http处理程序。在本例中,丢弃url是很有趣的,因此它由路由表外部的东西处理。您可以直接使用“regex”而不是irouteConstraint,我尝试了这个
routes.IgnoreRoute((rest)。*$”但路由系统仍在拦截此不,您不能使用IgnoreRoute!!IgnoreRoute不支持正则表达式。看看这里,看看如何使用约束:你知道你刚刚保存了我的头发。