我假设您使用的是 Sitecore 6.6,因为您提到了 Sitecore MVC RouteTables。尝试使用WebActivator在 RouteTable 中注册您的集线器映射。WebActivator 为您提供了将此引导代码添加到 aPreApplicationStartMethod
或 a 的选项,PostApplicationStartMethod
以便您可以注册路由并避免 Sitecore 的通配符路由优先。我已经使用这种方法在 Sitecore 下引导 Web API 路由。
using System;
[assembly: WebActivator.PreApplicationStartMethod(
typeof($rootnamespace$.App_Start.MySuperPackage), "PreStart")]
namespace $rootnamespace$.App_Start {
public static class MySuperPackage {
public static void PreStart() {
// Add your start logic here
}
}
}
另一种方法是将注册代码添加到自定义管道处理器中,并将此处理器添加到初始化事件管道中App_Config\Include\Sitecore.Mvc.config
<pipelines>
<!-- Loader -->
<initialize>
<processor type="Sitecore.Mvc.Pipelines.Loader.InitializeGlobalFilters, Sitecore.Mvc"/>
<processor type="Sitecore.Mvc.Pipelines.Loader.InitializeControllerFactory, Sitecore.Mvc"/>
<processor type="Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc"/>
</initialize>