Pregunta

Considere un StaticResourceController que localiza y sirve archivos.

He creado una ruta explícita para "favicon.ico" que se encargará de la solicitud de este archivo usando StaticResourceController:

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

En IIS6 el resultado esperado se produce al hacer una solicitud para http: // localhost: 8080 / favicon.ico .

Por desgracia, cuando despliego a IIS7 http: //localhost/favicon.ico devuelve un IIS-generado 404 , presumiblemente debido a que en realidad buscando el favicon.ico en la carpeta raíz de la web, en la que no existe.

Me tiene suficiente ocurra en StaticResourceController que esto no es una cosa buena para mi aplicación, sobre todo porque es multi-inquilino y el archivo favicon.ico puede cambiar. He puesto mis módulos de servidor web para manejar todas las solicitudes y anular la RouteCollection hacer caso omiso de los controles de archivos con RouteExistingFiles.

¿Por qué el UrlRoutingModule en mi camino en IIS7 y obligando a servir al archivo estático desde el disco (404)?

¿Fue útil?

Solución

En caso de que alguien se ejecuta en otro lugar de este problema, la solución que es necesario que tenga que dejar MVC no sabe para procesar las solicitudes en las carpetas donde viven sus archivos estáticos reales:

// 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}");

Otros consejos

En adiition a la respuesta de Daniel Crenna, tiene que agregar en el archivo en la sección web.confug system.webServer:

<modules runAllManagedModulesForAllRequests="true"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top