Eu tenho uma API baseada em ASP.NET que precisa enviar códigos de erro http do servidor para o cliente conforme eles ocorrem. Não desejo enviar ao usuário toda a mensagem de erro de estoque detalhada contendo o stacktrace; uma simples mensagem "Ocorreu um erro" servirá.
O comportamento padrão do IIS é sempre enviar http 500 para clientes não locais. Consegui enviar mensagens de erro detalhadas (com o código de erro); mas é possível desabilitar os detalhes de alguma forma?
Caso contrário, é possível adicionar um arquivo de erro personalizado que possa usar para todos os erros e ainda enviar o código de erro específico ao cliente?
Responder1
Na verdade, tive o oposto com um dos meus próprios aplicativos MVC. Eu estava recebendo páginas de erro personalizadas em vez do erro completo. Seu aplicativo deve incluir um arquivo FilterConfig.cs no App_Start. Este arquivo deve aparecer da seguinte forma:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
Quando customErrors está ativado, isso deve apresentar a visualização compartilhada Error.cshtml (~/Views/Shared/Error.cshtml) que você pode personalizar para expor quantas informações desejar sobre o erro.
HTH