2016-11-17 1 views
0

Ich habe eine ASP.NET MVC-Anwendung, ich habe Handhabungsmodul meine eigenen Fehler, die wie folgt aussehen:Wie zurückzukehren Seite 404, wenn ungültige Zeichen in Pfad Fehler in ASP.NET MVC erfüllt ist

public class ErrorHandlingModule : IHttpModule 
{ 
     public void Init(HttpApplication context) 
     { 
     context.Error += Context_Error; 
     } 

     public void Dispose() { } 

     void Context_Error(object sender, EventArgs e) { } 

} 

Es I behandeln Sie verschiedene Arten von Ausnahmen wie HttpException und andere Arten von benutzerdefinierten Ausnahmen.

Ich möchte überprüfen, ob Illegal characters in path Ausnahme erfüllt ist und dann 404 Seite zurückgibt. (wie ein Benutzer einfügen http://www.website.com/test")

Standardmäßig 500 Fehler Seite zurückgegeben.

Was ist der bessere Weg, dies zu tun? Durch den Vergleich mit der Nachricht der Ausnahme, durch HRESULT ...?

Antwort

0

Sie ändern einfach den Status Ihres Httpresponse zu NotFound (404):

Response.StatusCode = HttpStatusCode.NotFound; 

Sie die Antwort aus dem aktuellen Kontext bekommen, WebOperationContext.Current.OutgoingResponse.

Wenn Sie versuchen, eine fehlerhafte eingehende Anfrage zu erfassen - dh der URI der Anfrage hat ungültige Pfadzeichen - müssen Sie WCF bekämpfen oder es neu konfigurieren, um diese Informationen zu erhalten, da sie von der Kette verarbeitet werden Nachrichtenhandler, bevor sie jemals an Ihre Anwendung gesendet werden.

+0

Meine Frage ist, wie diese Ausnahme zu erkennen ist, 404 Fehler nicht zurückgegeben ... Ich möchte für die in Titel Fehler erwähnt 404 Seiten umleiten. –

+0

Wie hast du 'WebOperationContext.Current.OutgoingResponse' erhalten? Ich habe keine WCF !!! Ich habe ASP.NET MVC –

Verwandte Themen