Problem
Wenn ich den Wert HTTP Status
meines Antwort-Streams manuell auf " 404
oder" 503
stelle, rendert IIS den aktuellen IIS-Inhalt / die aktuelle IIS-Ansicht anstelle meiner benutzerdefinierten Ansicht.
Wenn ich das mit dem Webentwicklungsserver (AKA. Cassini ) mache , funktioniert es korrekt (das heißt, mein Inhalt wird angezeigt und die response.statuscode
== meine eingegebenen Daten).
Kann ich dieses Verhalten auf irgendeine Weise außer Kraft setzen?
Replizieren
Erstellen Sie eine Standard-ASP.NET MVC1-Webanwendung. Fügen Sie die folgende Route hinzu
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{*catchall}",
new { controller = "Home", action = "Index" }
);
}
Ersetzen Sie nun die Index-Methode des HomeControllers durch ...
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
Response.StatusCode = 404;
return View();
}
}