Elmah не регистрирует HttpRequestValidationException - PullRequest
12 голосов
/ 17 мая 2011

В моем приложении ASP.NET MVC2 Elmah не может регистрировать любые HttpRequestValidationException (кроме случаев, когда вы вошли на веб-сервер через удаленный рабочий стол и просматриваете сайт как localhost)

Например, если я наберу &#39 в текстовое поле при обычном просмотре с моего компьютера с использованием доменного имени я получаю

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".

И ничего не отображается в журнале Elmah.

Но если я войду в веб-сервер через удаленный рабочий столпросмотрите сайт как localhost. Я вижу полное сообщение об ошибке:

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

Я знаю, почему отображаются разные сообщения об ошибках, потому что у меня нет узла <customErrors mode="Off"/> в моем файле web.config.Но это нормально, я не хочу, чтобы полное сообщение об ошибке показывалось всему миру.

Но я хочу, чтобы Elmah регистрировал эту ошибку, когда она возникает.Что мне нужно сделать, чтобы это работало как положено?

1 Ответ

12 голосов
/ 06 июня 2011

Я думаю, что это дефект Elmah http://code.google.com/p/elmah/issues/detail?id=217, который вызван критическим изменением при проверке запросов в ASP.NET 4. В дефекте перечислены два возможных обходных пути (вручную зарегистрируйте исключение в ELMAH, перехватив его вобработчик Application_Error или отключение нового поведения проверки в Web.config)

См. этот пост в блоге , предоставляющий обходной путь.

...