2012-01-20 6 views
0

라우팅 서버를 사용할 때도 그렇습니다. 나는 문제가있다. 문제 없습니다 http://myweb.com/news/22*.aspx* 그러나 http://myweb.com/news/22 문제를 경우 경우 : 404 - 파일 또는 디렉터리를 찾을 수 없습니다.서버 404에서 URL 라우팅 라우팅 오류

현지 아무 문제에서

하지만, 서버 오류 경우에도 .HTML 또는 .jsp로 내가 을 문제가 무엇입니까 사용할 수 있습니까?

ID 이렇게 :

Global.asax에

void Application_Start(object sender, EventArgs e) 
{ 
    RegisterRoutes(RouteTable.Routes); 
} 

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("News", new Route("News/{ID}",new CustomRouteHandler("~/News/News.aspx"))); 
} 

CustomRouteHandler.cs 클래스 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.Routing; 
using System.Web.Compilation; 

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

    public CustomRouteHandler() 
    { 
    } 

    public string VirtualPath { get; private set; } 

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

의 Web.config :

<add assembly="System.Web.Routing, Version=3.5.0.0,Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing, Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" /> 

<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" /> 

링크 :

,
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/news/22" Text="News"></asp:HyperLink> 
+0

에서이 시도? –

+0

예 iis 사용 7. – user1160054

+0

섹션에 UrlRoutingModule을 추가하려고 시도 했습니까 –

답변

0

는 IIS7을 사용하는 모듈 섹션

<remove name="UrlRoutingModule" /> 
     <add name="UrlRoutingModule" 
     type="System.Web.Routing.UrlRoutingModule, 
       System.Web.Routing, 
       Version=3.5.0.0, 
       Culture=neutral, 
       PublicKeyToken=31BF3856AD364E35"/> 

이 처리기 섹션

<add name="UrlRoutingHandler" 
     preCondition="integratedMode" 
     verb="*" 
     path="UrlRouting.axd" 
     type="System.Web.HttpForbiddenHandler, 
       System.Web, Version=2.0.0.0, 
       Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a" /> 
+0

나는 일하지 않고 노력했다! 왜 ? – user1160054

+0

개발 환경에서 작동합니까? –

+0

경로 테스터를 애플리케이션에 추가하십시오. 경로와 충돌이있는 것으로 표시됩니다. http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx –