2010-08-23 2 views
2

라우팅을 사용하는 ASP.NET 4 WebForms 응용 프로그램이 있습니다. 나는 존재하지 않는 경로의 404 년대를 잡으려고 싶습니다ASP.NET 4 라우팅 캐치 모두

RouteTable.Routes.MapPageRoute("404", "{*url}", "~/error"); 

문제이며, 이것은 또한 ImageHandler.ashxResource.axd 같은 페이지에 대한 /error에 매핑의 원인이됩니다.

그래서 나는이 추가

RouteTable.Routes.Ignore("{resource}.axd"); 
    RouteTable.Routes.Ignore("{handler}.ashx"); 

을하지만 이것은 단지 예를 /scripts/Resource.axd 아닙니다에서, 루트 디렉토리에 Resource.axd을 무시합니다.

어떻게하면됩니까? 아니면 디렉토리를 잡을 수 있도록 모든 PageRoute를 잡으려고 어떤 Contraint을 설정해야합니까?

답변

0

시도해 보셨습니까?

RouteTable.Routes.Ignore("{*resource}.axd"); 
RouteTable.Routes.Ignore("{*handler}.ashx"); 
0

하이브리드 WebForms/MCV3 응용 프로그램에서 비슷한 문제가 발견되어이 질문에 이르게되었습니다. 근본적으로 루트 레벨 axd 파일 만 제대로 처리되었으므로 컨트롤러 외부로 라우팅하려고 시도한 것이 아무것도 없습니다. 더/덜 욕심 해결책이 될 수 있도록

routes.Ignore("{*allaxd}", new { allaxd = @".*\.axd(/.*)?" }); 

내가 무시하고 IgnoreRoutes에 대해 잘 모르겠지만, :

내 상황이 어쩌면 다른, 그러나 결국 나는이 같은 일을 찾았 일 작동하고있어.