.NET MVC löst 500 Serverfehler statt 404 nicht gefunden aus, wenn kein Controller-Pfad gefunden werden kann

9

Aus irgendeinem Grund wird beim Eingeben einer falschen URL zu einer Datei / einem Verzeichnis / Controller, die nicht existiert, folgender Fehler ausgegeben:

  

System.Web.HttpException       Der Controller für den Pfad '' wurde nicht gefunden oder implementiert IController nicht       System.Web.Mvc.IController & gt; GetControllerInstance (System.Web.Routing.RequestContext, System.Type)

IIS folgt dann der regulären Fehlerbehandlung und zeigt die Seite an, die für einen 500 Internal Server Error geeignet ist. Eine Fehlerbehandlungslogik 404 Not Found sollte befolgt werden. Eine andere Webanwendung, die ich gerade teste, wirft diese HttpException NICHT, wenn sie keine Route finden kann, und gibt normalerweise 404 zurück. Was löst diese HttpException aus?

Warum und wie folgt man einer 404-Route für diese Art von Fehler statt einer 500? Unten ist die Konfiguration der Fehlerbehandlung. Kein anderer Code behandelt Fehler. Warum wird der Fehler 500 immer angezeigt? Es ist, als ob die Standardbehandlung die Ausnahme 'Controller nicht finden' als Fehler behandelt, obwohl sie tatsächlich nicht gefunden wurde.

%Vor%

Failed Request Trace zeigt dies an. Da keine Route rund ist, wird die HttpException ausgelöst, und die 500-Routen-Behandlung tritt an Stelle von 404. Ich mache nichts, um ein normales Standardverhalten zu übersteuern. Das HandleErrorAttribute wird nicht zu den MVC-Filtern hinzugefügt.

    
simbolo 18.08.2014, 04:44
quelle

2 Antworten

1

Sie sollten einen Filtercontroller hinzufügen, um einige benutzerdefinierte IIS-Fehler zu überschreiben.

%Vor%     
Hiệp Lê 18.08.2014 09:40
quelle
1

Sie müssen das

entfernen %Vor%

Option von Ihnen customErrors-Tag. Leider bedeutet dies, dass Sie vor Ihrem 404 einen 302 haben, aber es wird Ihr Problem beheben.

Alternativ können Sie ASPX-Seiten für Ihre Fehlerseiten verwenden:

%Vor%

Es gibt eine vorherige Diskussion zu diesem Thema auf SO hier

    
Carl 09.09.2014 12:48
quelle