Ich habe gerade eine ASP.NET MVC-Site veröffentlicht, auf der ich benutzerdefinierte Fehlerseiten erstellt habe. Hier ist, wie ich sie umgesetzt:Überschreiben der Standardfehlerseiten des Webhosts
in Errorcontroller:
public ActionResult NotFound()
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
in web.config:
<customErrors mode="On" defaultRedirect="~/500">
<error statusCode="403" redirect="~/403"/>
<error statusCode="401" redirect="~/401"/>
<error statusCode="404" redirect="~/404"/>
<error statusCode="409" redirect="~/409"/>
<error statusCode="500" redirect="~/500"/></customErrors>
natürlich fehlerhafte Anfragen geleitet werden das NotFound Verfahren, und so weiter. Theoretisch sollte es funktionieren.
Allerdings habe ich ein Problem: Jetzt, da ich meine Website auf meinem Host (GoDaddy) veröffentlicht habe, habe ich festgestellt, dass einen Fehlercode für HTTP-Status verursacht meine benutzerdefinierten Fehlerseiten durch die ersetzt Standard GoDaddy Einsen.
Wie kann ich das umgehen? Natürlich wäre die einfachste Lösung, einen 200 Statuscode zurückzugeben, aber ich würde lieber den echten Fehlercode (für SEO und so) zurückgeben.
+1 für Erwähnung response.TrySkipIisCustomErrors - http://StackOverflow.com/Questions/1706934/asp-net-mvc-app-Custom-error-pages-not-displaying-in-shared-hosting-environment hat eine detailliertere Antwort und Links zu einem nützlichen Eintrag in Rick Strahls Blog - http://www.west-wind.com/weblog/posts/745738.aspx – KevD