Question

J'ai beaucoup de liens brisés qui ne sont pas connectés. Est-il possible de configurer IIS pour les envoyer par ASP.NET afin que mes normales 404 prises de routine de journalisation eux?

Était-ce utile?

La solution

Vous pouvez utiliser l'hôte MVC sur la méthode de hack IIS 6. Fondamentalement, la configuration d'un caractère générique. * Mappage dans IIS et ont la poignée aspnet_isapi.dll cette demande, ce qui est la même que celle ayant poignée .NET toute demande. Vous pouvez rencontrer une baisse de performance (probablement minime), mais il devrait frapper votre routine de journalisation.

IIS 6 Hack

Autres conseils

Si vous utilisez IIS7 vous pouvez utiliser l'élément de configuration httpErrors. Ce que cela fait est (après la demande a été traitée), il vérifie le code de réponse qui a été poussé à la sortie, et vous permet d'intercepter les appels, tels que:

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

Il est un peu comme le mécanisme customErrors de ASP.NET, à l'exception d'être traité plus tard dans la canalisation. Dans l'exemple ci-dessus, je dis à exécuter l'URL /PageNotFound.aspx quand il rencontre un 404. Vous devez être prudent, cependant, parce que si vous envoyez un 404 de la page PageNotFound.aspx (règle générale, vous!), il peut se laisser entraîner dans un redirect cyclique. Pour contourner cela, nous ajoutons l'attribut suivant:

existingResponse="PassThrough"

Ce que cela fait est de déterminer si la réponse actuelle a déjà un corps, et si oui, transmettez-le (ne pas traiter le code d'état).

j'ai posté sur mon blog un il y a quelque temps: http://www.fidelitydesign.net/ ? p = 21

Hope qui aide:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top