Отображение подробных сообщений об ошибках - PullRequest
0 голосов
/ 15 марта 2012

У меня есть небольшой блок Try Catch, который сообщит пользователю более подробную информацию при передаче недопустимых данных в мое приложение:

try
{
    //do something that throws an exception because of invalid data
}
catch (Exception ex)
{
    throw new Exception("You have invalid data");
    //throw ex;
}

Когда я запускаю приложение локально с неверными данными, оно выдает Exception, как и ожидалось:

You have invalid data

Однако, когда я опубликую его на сервере, он выдаст только Exceptions, например, для той же точной ошибки:

There was an error processing the request.

Я все еще могу запустить код с правильными данными, поэтому я знаю, что все остальное работает правильно.

Есть ли что-то еще, что я должен добавить к своему web.config?

Вот что у меня сейчас:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true"/>
</system.webServer>

1 Ответ

0 голосов
/ 15 марта 2012

Вы не должны показывать исключения посетителей вашего сайта таким образом.

Если вы проверяете пользовательские данные, то выполните проверку формы на уровне интерфейса пользователя.

Исключения относятся к исключительным обстоятельствам . Если у вас есть недействительные данные, которые не были получены от вашего пользователя, но вызвали какие-то исключительные обстоятельства, то вашему пользователю, вероятно, не нужно знать подробности. Обычно в этой ситуации показывается страница с неким общим сообщением «Техническая ошибка», которое приносит извинения за проблему и гарантирует, что кто-то ее изучает.

Если вы хотите видеть подробности исключений на вашем сервере во время разработки, вам следует отключить пользовательские ошибки в web.config

<system.web>
    <customErrors mode="Off">
    </customErrors> 
</system.web>
...