Frage

Betrachten wir ein StaticResourceController dass ortet und dient Dateien.

Ich habe eine explizite Route für „favicon.ico“ eingerichtet, dass die Anforderung für diese Datei behandelt StaticResourceController mit:

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

In IIS6 das erwartete Ergebnis tritt auf, wenn eine Anforderung für http machen: // localhost: 8080 / favicon.ico .

Leider wenn ich IIS7 bereitstellen http: //localhost/favicon.ico gibt eine IIS-generated 404 , vermutlich, weil es tatsächlich ist für die favicon.ico im Web-Stammordner, in dem es existiert nicht.

Ich habe genug geschieht in StaticResourceController, dass dies nicht eine gute Sache für meine Anwendung ist, zumal es Multi-Tenant und die favicon.ico-Datei ändern kann. Ich habe meine Web-Server-Module festgelegt, jede Anfrage zu handhaben und die Routecollection zur Mißachtung Dateiprüfungen mit RouteExistingFiles außer Kraft setzen.

Warum ist die UrlRoutingModule in meinem Weg in IIS7 bekommen und zwingt die statische Datei dienen, von der Platte (404)?

War es hilfreich?

Lösung

Falls jemand anderes läuft in dieses Problem, die Lösung ist, müssen Sie MVC wissen zu lassen, nicht zu Prozessanforderungen in dem Ordner, in denen Sie Ihre tatsächlichen statischen Dateien leben:

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

Andere Tipps

In adiition zu Daniel Crenna Antwort, müssen Sie in web.confug Datei in system.webServer Abschnitt hinzuzufügen:

<modules runAllManagedModulesForAllRequests="true"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top