У меня есть API на основе ASP.NET, которому нужно отправлять коды ошибок http с сервера клиенту по мере их возникновения. Я не хочу отправлять пользователю все подробное сообщение об ошибке, содержащее трассировку стека, простое сообщение «Произошла ошибка» подойдет.
Поведение IIS по умолчанию — всегда отправлять http 500 нелокальным клиентам. Я дошел до того, что могу отправлять подробные сообщения об ошибках (с кодом ошибки); но можно ли как-то отключить подробности?
Если нет, можно ли добавить один пользовательский файл ошибок, который я смогу использовать для всех ошибок, и при этом отправлять клиенту конкретный код ошибки?
решение1
На самом деле у меня было наоборот с одним из моих собственных приложений MVC. Я получал пользовательские страницы ошибок вместо полной ошибки. Ваше приложение должно включать файл FilterConfig.cs в App_Start. Этот файл должен выглядеть следующим образом:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
Если customErrors включен, должно отображаться общее представление Error.cshtml (~/Views/Shared/Error.cshtml), которое можно настроить так, чтобы оно отображало столько информации об ошибке, сколько нужно.
НТН