Basicamente:
Em IncludeErrorDetailPolicy
vez disso, use se CustomErrors
não resolver o problema para você (por exemplo, se você tiver uma pilha do ASP.NET> 2012):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
Nota: Tenha cuidado ao retornar informações detalhadas de erro, que podem revelar informações confidenciais a 'hackers'. Veja o comentário de Simon sobre esta resposta abaixo.
Versão TL; DR
Para mim CustomErrors
, realmente não ajudou. Já estava definido como Off
, mas eu ainda só recebi uma an error has occurred
mensagem fraca . Eu acho que a resposta aceita é de 3 anos atrás, que é um longo tempo na palavra web hoje em dia. Estou usando a API da Web 2 e o ASP.NET 5 (MVC 5) e a Microsoft se afastou de uma estratégia somente do IIS, enquanto o CustomErrors
velho skool do IIS;).
Enfim, tive um problema de produção que não tinha localmente. E então descobri que não conseguia ver os erros na guia Rede do Chrome como na máquina de desenvolvimento. No final, consegui resolver o problema instalando o Chrome no meu servidor de produção e depois navegando até o aplicativo no próprio servidor (por exemplo, em 'localhost'). Em seguida, erros mais detalhados apareceram com rastreamentos de pilha e tudo.
Só depois encontrei este artigo de Jimmy Bogard (Nota: Jimmy é o Sr. AutoMapper! ). O engraçado é que o artigo dele também é de 2012, mas ele já explica que CustomErrors
não ajuda mais nisso, mas que você PODE alterar o 'Detalhe do erro' definindo um diferente IncludeErrorDetailPolicy
na configuração global da WebApi (por exemplo WebApiConfig.cs
):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
Felizmente, ele também explica como configurá-lo para que o webapi (2) escute suas CustomErrors
configurações. Essa é uma abordagem bastante sensata, e isso permite que você volte a 2012: p.
Nota: O valor padrão é 'LocalOnly', o que explica por que consegui resolver o problema da maneira que descrevi antes de encontrar esta postagem. Mas eu entendo que nem todo mundo pode apenas remotamente produzir e iniciar um navegador (eu sei que quase não consegui até que decidi me tornar freelancer e DevOps).