2010-12-28 1 views
0

프레임 워크 3.5가있는 웹 사이트 및 Classic.NET AppPool에서 실행되는 IIS에서 URL 라우팅 (System.Web.Routing)을 사용하고 있습니다. 내 Web.config의는 다음과 같이이다 :Classic .NET AppPool의 라우팅 및 웹 사이트 문제

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

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("BikeSaleRoute", new Route 
    (
     "bikes/sale", 
     new CustomRouteHandler("~/Contoso/Products/Details.aspx") 
    )); 
    routes.Add("Teste", new Route("teste", new CustomRouteHandler("~/Teste.aspx"))); 
} 

그래서 내 CustomRouteHandler이입니다 :

<assemblies> 
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
< /assemblies> 

<httpModules> 
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, 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"/> 
</httpModules> 

내 Global.asax에이처럼

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

    public string VirtualPath { get; private set; } 

    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     HttpContext.Current.RewritePath(String.Format("{0}", VirtualPath)); 
     var page = BuildManager.CreateInstanceFromVirtualPath 
      (VirtualPath, typeof(Page)) as IHttpHandler; 
     return page; 
    } 
} 

내가 주소 로컬 호스트에 액세스

/WebSiteTesteRoteamento /, 사이트가로드됩니다. 하지만 주소 localhost/WebSiteTesteRoteamento/bikes/sales 또는 localhost/WebSiteTesteRoteamento/teste에 액세스 할 때 404 오류가 나타납니다. 누군가 나를 도와?

답변

0

3.5 System.Web.Routing이 Classic .NET AppPool에서 전혀 작동하지 않는다고 생각합니다. Classic .NET AppPool을 사용해야하는 이유는 무엇입니까?

Classic .NET AppPool을 사용해야하는 경우 IIS URL Rewrite 2을 사용해 볼 수 있습니다.