Question

Considérons un StaticResourceController qui localise et sert des fichiers.

Je l'ai mis en place une route explicite pour « favicon.ico » qui traitera la demande de ce fichier en utilisant StaticResourceController:

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

En IIS6 le résultat attendu se produit lors d'une demande de http: // localhost: 8080 / favicon.ico .

Malheureusement, quand je déploie à IIS7 http: //localhost/favicon.ico retourne un produit IIS-404 , sans doute parce qu'il cherche en fait pour le favicon.ico dans le dossier racine web, où il n'existe pas.

J'ai assez passe dans StaticResourceController que ce n'est pas une bonne chose pour ma demande, d'autant plus qu'il est multi-locataire et le fichier favicon.ico peut changer. J'ai mis mes modules de serveur Web pour gérer chaque demande et remplacer le RouteCollection à ne pas tenir compte des contrôles de fichiers avec RouteExistingFiles.

Pourquoi le UrlRoutingModule devient de ma façon IIS7 et forcer au service du fichier statique à partir du disque (404)?

Était-ce utile?

La solution

Dans le cas où quelqu'un d'autre va dans ce problème, la solution dont vous avez besoin vous est de laisser MVC savoir de ne pas traiter les demandes dans les dossiers où vos fichiers statiques réels vivent:

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

Autres conseils

Dans adiition à la réponse de Daniel Crenna, vous devez ajouter dans le fichier web.confug dans la section system.webServer:

<modules runAllManagedModulesForAllRequests="true"/>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top