2011-05-16 2 views
11

Dans mon application ASP.NET MVC2 Elmah ne parvient pas à se connecter tout HttpRequestValidationException (sauf si vous êtes connecté au serveur Web via le bureau à distance et la navigation sur le site comme localhost)Elmah ne consignait HttpRequestValidationException

Par exemple, si je tape &#39 dans une zone de texte lors de la navigation normalement de mon PC en utilisant le nom de domaine que je reçois

Server Error in '/' Application. 
Runtime Error 

Description: An application error occurred on the server. The current custom 
error settings for this application prevent the details of the application 
error from being viewed remotely (for security reasons). It could, however, 
be viewed by browsers running on the local server machine. 

Details: To enable the details of this specific error message to be viewable on 
remote machines, please create a <customErrors> tag within a "web.config" 
configuration file located in the root directory of the current web application. 
This <customErrors> tag should then have its "mode" attribute set to "Off". 

Et rien ne montre dans le journal Elmah.

Mais si je me connecte au serveur Web via le bureau à distance et naviguer sur le site en tant que localhost je peux voir le message d'erreur complet:

Server Error in '/' Application. 
A potentially dangerous Request.Form value was detected from the client 

Je sais pourquoi différents messages d'erreur sont affichés, il est parce que je n » J'ai un noeud <customErrors mode="Off"/> dans mon web.config. Mais ce n'est pas grave, je ne veux pas que le message d'erreur complet s'affiche dans le monde entier.

Mais ce que je veux, c'est que Elmah enregistre cette erreur quand elle se produit. Que dois-je faire pour que cela fonctionne comme prévu?

Répondre

12

Je pense que c'est ce défaut Elmah http://code.google.com/p/elmah/issues/detail?id=217, qui est causé par un changement de validation de demande dans ASP.NET 4. Le défaut répertorie deux solutions de contournement possibles (consigner manuellement l'exception dans ELMAH en l'interceptant dans le gestionnaire Application_Error ou désactiver le nouveau comportement de validation dans Web.config)

Voir ce blog post pour une solution de contournement.

+1

FYI: L'erreur Application_Error ne semble pas fonctionner en mode pipeline intégré dans IIS7. –

Questions connexes