Ich habe ein ziemlich interessantes Problem mit der benutzerdefinierten Fehlerseiten-Verwaltung für eine neue ASP.NET MVC-Anwendung.ASP.NET MVC customError Seite wird nicht für einige der 400 Fehler angezeigt
Dieses Problem ist wie folgt:
- wenn ich eine URL bin Aufruf (egal welche) mit einem „schlechten“ Argumente am Ende der URL, wie ..../c<
, wird die Anwendung der Anzeige der richtigen Serverfehler Seite wie in der web.config angewiesen;
- wenn ich die URL in eine unangenehmere ändere, wie .../<c
(um mehr wie ein HTML-Tag zu sehen, gibt es keine Serverfehlerseite mehr im Browser angezeigt und stattdessen bekomme ich eine einfache YSOD mit einer Nachricht wie An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.
nach ELMAH endeten beiden Anträge mit einem 400-Statuscode und die Nachricht Wesen:
- für den ersten: System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (<). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
- für die zweiten: System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (<). at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
So, Beide Fehler sind identisch, der Statuscode ist derselbe, aber für einen der Fehler wird die benutzerdefinierte Fehlerseite nicht getti ng angezeigt. Ich bin auch auf global.asax im Debug-Modus gegangen und überprüft die Server.GetLastError()
in protected void Application_Error(object sender, EventArgs e)
und wieder, beide Fehler waren die gleichen, nichts ist anders.
In web.config, das ist, wie mein <customErrors>
Tag wie folgt aussieht:
<customErrors mode="On" defaultRedirect="/ServerError.aspx" redirectMode="ResponseRewrite"> <error statusCode="500" redirect="/ServerError.aspx" /> <error statusCode="404" redirect="/PageNotFound.aspx" /> </customErrors>
Kann mir bitte jemand sagen, warum das Verhalten in diesen beiden Fällen unterschiedlich ist?
Vielen Dank für Ihre Zeit.
Worauf hosten Sie? Cassini? IIS6? IIS7 +? –
IIS 8.5 (Windows 8.1) und auch Azure-Website. – Edi