문제

고려 StaticResourceController 는 찾아가 제공하는 파일.

나는 설정 명시적으로"파비콘.ico"을 처리하는 요청을 사용하여 이 파일 StaticResourceController:

routes.MapRoute(
        "favicon",
        "favicon.ico",
        new { controller = "StaticResource", action = "Get", file = "favicon.ico", area="root"},
        new[] { "Dimebrain.Mvc.Controllers" }
        );

Lls6 에서 예상한 결과가 발생합을 요청할 때 http://localhost:8080/favicon.ico.

불행하게도 때를 배포하 IIS7 http://localhost/favicon.ico 반 IIS 생성 404,아마도 때문에 그것이 실제로 찾은 파비콘.ico 웹에서 루트 폴더에,그것은 존재하지 않습니다.

나는 충분에서 일어나는 StaticResourceController 는 것이 좋은 것 응용 프로그램에 대한,특히 때문에 그것이 다 거주자와 파비콘.ico 파일이 변경될 수 있습니다.나는 설정 나의 웹 서버를 모듈을 처리하는 모든 요청을 재정의 RouteCollection 을 무시하는 파일을 검사 RouteExistingFiles.

왜 UrlRoutingModule 내 방식으로 점점에서 IIS7 와 강제로 제공하는 정적 파일에서 디스크(404)?

도움이 되었습니까?

해결책

In case anyone else runs into this problem, the solution is you need you to let MVC know not to process requests in folders where your actual static files live:

// Make sure MVC is handling every request for static files
routes.RouteExistingFiles = true;

// Don't process routes where actual static resources live
routes.IgnoreRoute("content/{*pathInfo}");
routes.IgnoreRoute("scripts/{*pathInfo}");
routes.IgnoreRoute("areas/admin/content/{*pathInfo}");
routes.IgnoreRoute("areas/admin/scripts/{*pathInfo}");

다른 팁

에 adiition 다니엘 Crenna 의 응답,당신을 추가해야에서 웹.confug 파일 시스템입니다.웹서버 섹션:

<modules runAllManagedModulesForAllRequests="true"/>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top