Auf der offiziellen Seite Fehlerfilterung wird eine Reihe von Möglichkeiten erläutert, wie dieser 404-Favicon-Fehler unterdrückt werden kann.
Sie könnten alle 404 Fehler deklarativ in der web.config wie folgt herausfiltern. Ich bin mir nicht sicher, ob es einen Weg gibt, nur ein 404 für ein Favicon zu unterdrücken.
%Vor%Wenn Sie dies programmgesteuert durchführen möchten, können Sie den Fehler in den ErrorLog- oder ErrorEmail-Filterereignissen, wie in den offiziellen Dokumenten erläutert, ablehnen. Der folgende Code ist etwas übertrieben, zeigt aber, wie Sie only 404-Fehler für eine Anfrage /favicon.ico herausfiltern können.
%Vor%Ich würde es vorziehen, entweder alle 404s deklarativ über die web.config zu filtern oder einfach ein Favicon wie Joel suggeriert.
Es hilft Ihnen nicht, ELMAH zu konfigurieren, aber die einfachste Möglichkeit, ein 404 für Anfragen für ein Favicon zu verhindern, ist die Bereitstellung eines ...
Ich konnte ELMAH dazu bringen, den Fehler mit dem folgenden Code zu ignorieren. Sie können möglicherweise auch andere Pfade hinzufügen, die Sie ebenfalls ignorieren möchten. Technisch gesehen könnten dies separate Tests sein, aber auf der anderen Seite möchte ich andere 404 Fehler in der Zukunft ignorieren, die mit meiner App zu tun haben. Ich dachte, ich würde diese zusammen gruppieren, da sie nicht von meiner Anwendung abhängig sind und nur hier sind um Unordnung aus meiner Fehlerprotokollierung zu entfernen.
%Vor%Wenn Sie sich darüber Sorgen machen, dass Ihre web.config-Datei unübersichtlich ist, können Sie die Filter immer in eine dedizierte Datei aufteilen.
%Vor%Es ist nicht so, dass meine Webanwendung ein Favicon anfordert, sondern wenn ich zur Seite elmah.axd blicke, fordert der Browser ein Favicon an.
Das sollte angeblich funktionieren:
%Vor%Aber raten Sie mal, was es nicht tut.
Der einzige Weg, den ich gefunden habe, ist ein favicon.ico zu meinem Web-Root hinzuzufügen. Dies ist nicht für meine Website, es ist nur für die elmah.axd Seite. Rufen Sie route.IgnoreRoute NICHT auf.
Hier ist elmah.axd mit meinem Favicon und keine Fehler:
Ich habe die programmatische Lösung von Kurt Schindler oben verwendet (vs config); Ich habe jedoch festgestellt, dass Nicht-HttpExceptions zweimal im ErrorLog_Filtering-Ereignishandler ausgelöst wurden. Um dies zu vermeiden, müssen Sie die GetBaseException-Methode einer Typprüfung unterziehen. Hier ist das Snippet
%Vor%Nichts Neues hier, nur ein Hinweis, wenn Sie ein seltsames Verhalten sehen.
Danke ...
Tags und Links logging elmah http-status-code-404