Frage

Ich habe viele kaputte Links, die nicht protokolliert werden. Gibt es eine Möglichkeit, IIS einzurichten, um sie über ASP.NET zu senden, damit meine normale 404 -Protokollierungsroutine sie fängt?

War es hilfreich?

Lösung

Sie können die Host MVC auf der IIS 6 -Hack -Methode verwenden. Richten Sie im Grunde genommen eine Wildcard ein. Sie können eine Leistungsabnahme (wahrscheinlich minimal) erleben, sollte jedoch Ihre Protokollierungsroutine treffen.

Iis 6 hack

Andere Tipps

Wenn Sie IIS7 verwenden, können Sie das HTTPerRors -Konfigurationselement verwenden. Dies ist (nachdem die Anfrage bearbeitet wurde), es überprüft den Antwortcode, der in die Ausgabe gedrückt wurde, und ermöglicht es Ihnen, Anrufe abzufangen, z. B.:

<httpErrors existingResponse="PassThrough">
    <remove statusCode="404" />
    <error statusCode="404" responseMode="ExecuteURL" path="/PageNotFound.aspx" />
</httpErrors>

Es ist sehr ähnlich wie der CustomErrors -Mechanismus von ASP.NET, mit Ausnahme, dass sie später in der Pipeline verarbeitet werden. Im obigen Beispiel sage ich es, dass die URL /Pagenotfound.aspx ausgeführt wird, wenn sie auf eine 404 trifft. Es kann in eine zyklische Umleitung verwickelt werden. Um dies zu umgehen, fügen wir das folgende Attribut hinzu:

existingResponse="PassThrough"

Dies ist zu bestimmen, ob die aktuelle Antwort bereits eine Körperschaft hat, und wenn ja, geben Sie sie weiter (verarbeiten Sie den Statuscode nicht).

Ich habe das vor einiger Zeit in meinem Blog gepostet: http://www.fidelitydesign.net/?p=21

Ich hoffe, das hilft :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top