2013-03-08 4 views
0

Я пытался следуя http://msdn.microsoft.com/en-us/library/cc668202(v=vs.90).aspxПользовательского маршрут не работает в ASP.NET

я создал добавить это к моему web.config:

<modules> 
     <remove name="ScriptModule"/> 
     <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <remove name="UrlRoutingModule" /> 
     <add name="UrlRoutingModule" 
      type="System.Web.Routing.UrlRoutingModule, 
       System.Web.Routing, 
       Version=3.5.0.0, 
       Culture=neutral, 
       PublicKeyToken=31BF3856AD364E35"/> 
    </modules> 

И я добавил это к моему Global .asax:

protected void Application_Start(Object sender, EventArgs e) 
     { 
      SplendidInit.InitApp(); 
      RegisterRoutes(RouteTable.Routes); 
     } 

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.Add("ShortUrl_Attachment_NoLogin", new Route 
      (
       "a", 
       new CustomRouteHandler("~/FACTS/Attachments/Attachment_NoLogin.aspx") 
      )); 
     } 

     public class CustomRouteHandler : IRouteHandler 
     { 
      public CustomRouteHandler(string virtualPath) 
      { 
       this.VirtualPath = virtualPath; 
      } 

      public string VirtualPath { get; private set; } 

      public IHttpHandler GetHttpHandler(RequestContext 
        requestContext) 
      { 
       var page = BuildManager.CreateInstanceFromVirtualPath 
        (VirtualPath, typeof(Page)) as IHttpHandler; 
       return page; 
      } 
     } 

Когда я перейти к /FACTS/Attachments/Attachment_NoLogin.aspx он работает; но, когда я пытаюсь перейти к своему пользовательскому маршруту /a, он говорит: «Ошибка HTTP 404.0 - не найдено».

Как я могу выполнить свой собственный маршрут?

Благодарим за помощь.

Edit:

Я использую .NET 3.5 на IIS 7.5, если это имеет значение (я предполагаю, что это делает).

ответ