0 votes

IIS : Comment puis-je enregistrer les 404 non-ASPX ?

J'ai beaucoup de liens brisés qui ne sont pas enregistrés. Existe-t-il un moyen de configurer IIS pour qu'il les envoie via ASP.NET de manière à ce que la routine normale de journalisation 404 les attrape ?

1voto

Tommy Points 17332

Vous pouvez utiliser la méthode du hack "host MVC on IIS 6". Il s'agit de configurer un mappage joker .* dans IIS et de faire en sorte que la dll aspnet_isapi.dll gère cette demande, ce qui revient à faire en sorte que .NET gère toutes les demandes. Il est possible que les performances diminuent (probablement de façon minime), mais cela ne devrait pas affecter votre routine de journalisation.

Piratage de IIS 6

1voto

Matthew Abbott Points 32861

Si vous utilisez IIS7, vous pouvez utiliser l'élément de configuration httpErrors. Cet élément vérifie (après le traitement de la demande) le code de réponse qui a été envoyé à la sortie, et vous permet d'intercepter des appels, tels que :

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

Il ressemble beaucoup au mécanisme customErrors d'ASP.NET, à l'exception du fait qu'il est traité plus tard dans le pipeline. Dans l'exemple ci-dessus, je lui demande d'exécuter l'URL /PageNotFound.aspx lorsqu'il rencontre un 404. Il faut cependant faire attention, car si vous envoyez un 404 à partir de la page PageNotFound.aspx (ce que vous feriez normalement !), elle peut être prise dans une redirection cyclique. Pour contourner ce problème, nous ajoutons l'attribut suivant :

existingResponse="PassThrough"

Il s'agit de déterminer si la réponse actuelle a déjà un corps et, si c'est le cas, de le transmettre (sans traiter le code d'état).

J'ai publié ceci sur mon blog il y a un certain temps : http://www.fidelitydesign.net/?p=21

J'espère que cela vous aidera :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X