Guten Tag!
Ich verwende eine Strategie, um 404-Fehler wie folgt zu behandeln: Fehlerbehandlung für ASP.NET MVC 2 und IIS 7.0 oder dies: Wie kann ich 404 in ASP.NET MVC richtig behandeln?
Kurz gesagt: Ich behandle 404 als Ausnahme in Global.asax
, ohne irgendwelche Routing-Regeln hinzuzufügen. Wenn die Ausnahme 404 ist, rende ich spezielle controller \ action mit Fehlermeldung.
Auf IIS6 funktioniert es mit ASP.NET-Platzhalter-Mapping. Auf IIS7 im integrierten Modus muss ich Folgendes zum Web.config
hinzufügen (wobei /error/HttpError404
meine Aktion mit 404-Seite ist):
Warum? Routing funktioniert anders im integrierten IIS-Modus und IIS6-Platzhalter-Zuordnung?
Vielen Dank im Voraus!
UPDATE: Nach meinen Tests scheint es, dass meine Fehlerbehandlung funktioniert und meine 404-Aktion gerendert wird, aber es scheint, dass IIS 404-Antwortcode sieht (den ich programmatisch in meiner 404-Aktion einstelle) und meine Seite durch Standardfehler ersetze.
Wenn ich <httpErrors>
gesetzt habe, habe ich zwei Treffer für die 404-Seite: eine aus der Ausnahmebehandlung in Global.asax
und eine aus IIS.
Kann das die Ursache sein?
Tags und Links asp.net-mvc asp.net-mvc-2 iis-7 iis-6