Mensagem de erro detalhada 500, ASP + IIS 7.5

IIS 7.5, 2008rc2, asp clássico, erro 500 msg:

A página não pode ser exibida porque ocorreu um erro interno do servidor.

Eu preciso saber como configurar o IIS para obter um erro mais detalhado.
Eu tentei definir como true todas as opções de debugging na configuração do ASP.
Mas isso não funcionou. Alguém pode me ajudar?

Eu cheguei ao mesmo problema e fixo da mesma forma que Alex K.

Então, se “Enviar erros para o navegador” não está funcionando, defina também isso:

Páginas de erro -> 500 -> Editar configurações de resources -> “Erros detalhados”

insira a descrição da imagem aqui

Observe também que, se o conteúdo da página de erro retornada for muito curto e você estiver usando o IE, o IE ignorará o conteúdo útil enviado pelo servidor e mostrará sua própria página de erro genérica. Você pode desativar isso nas opções do IE ou usar um navegador diferente.

Se você estiver em um servidor remoto, poderá configurar seu arquivo web.config da seguinte forma:

          

Clique duas vezes em “ASP” na canvas inicial do site no IIS admin, expanda “Propriedades de debugging”, ative “Enviar erros ao navegador” e clique em “Aplicar”.

Em “Páginas de erro” na canvas inicial, selecione “500”, depois “Editar configurações do recurso” e selecione “Erros detalhados”.

Observe que as mesmas etapas se aplicam ao IIS 8.0 (Windows Server 2012).

Depois de tentar a resposta de Vaclav e Alex , eu ainda tive que desabilitar “Mostrar mensagens de erro HTTP amigáveis” no IE

insira a descrição da imagem aqui

No web.config em

  

replace (ou adicionar) a linha

  

com

  

Isso ocorre porque, por padrão, o IIS7 intercepta códigos de status HTTP, como 4xx e 5xx, gerados por aplicativos no pipeline.

Em seguida, ative ” Enviar erros ao navegador ” na seção “ASP” e, em ” Páginas de erro / Editar configurações do recurso “, selecione “Erros detalhados”.

Além disso, conceda permissions de gravação na pasta do site ao grupo interno IIS_IUSRS .

tente definir o valor do atributo httpErrors “existingResponse” como “PassThrough”. O meu foi definido em “Replace”, o que fazia com que o YSOD não fosse exibido.

  

TLDR: Primeiro determine em que parte do pipeline você está recebendo o erro (role a canvas procurando por capturas de canvas de algo que se pareça com o erro), faça alterações para obter algo novo, repita.

Primeiro determine qual mensagem de erro você está realmente vendo.

Se você está vendo o arquivo localizado aqui …

% SystemDrive% \ inetpub \ custerr \\ 500.htm

… que geralmente se parece com isso:

Erro do Padrão 500 do IIS

… então você sabe que está vendo a página de erro atualmente configurada no ** IIS ** e NÃO precisa alterar a configuração de customErrors, a configuração de detalhes do erro de asp ou a configuração do navegador “show friendly http errors”.

Você pode querer olhar para o caminho acima referenciado em vez de confiar na minha captura de canvas apenas no caso de alguém ter mudado isso.

“Sim, vejo o erro acima descrito …”

Nesse caso, você está vendo a configuração de < httpErrors > ou, no Gerenciador do IIS, as páginas de erro -> Editar configurações de recurso. O padrão para isso é errorMode = DetailedLocalOnly no nível do nó do servidor (em oposição ao nível do site), o que significa que enquanto você visualiza essa página de erro configurada enquanto remoto, você deve poder fazer logon localmente no servidor e ver toda a página erro que deve ser algo como isto:

Erro HTTP detalhado

Você deve ter tudo o que precisa nesse ponto para corrigir o erro atual.

“Mas eu não vejo o erro detalhado mesmo navegando no servidor”

Isso deixa algumas possibilidades.

  1. O navegador que você está usando no servidor está configurado para usar um proxy em suas configurações de conexão para que não seja visto como “local”.
  2. Você não está realmente navegando para o site que acha que está navegando. Isso geralmente acontece quando há um balanceador de carga envolvido. Faça um ping check para ver se o dns lhe dá um IP no servidor ou em algum outro lugar.
  3. As configurações httpErrors do seu site estão definidas apenas para “Personalizado”. Altere para “DetailedLocalOnly”. No entanto, se você tiver um erro de configuração, isso pode não funcionar, pois o httpErrors no nível do site também é um item de configuração. Nesse caso, vá para a # 4
  4. O padrão para httpErrors para todos os sites é definido como “Personalizado”. Nesse caso, você precisa clicar no nó do servidor de nível superior no Gerenciador do IIS (e não em um site específico) e alterar as configurações de httpErrors para DetailedLocalOnly. Se este for um servidor interno e você não estiver preocupado em divulgar informações confidenciais, também poderá defini-lo como “Detalhado”, o que permitirá que você veja o erro de clientes que não sejam o servidor.

“Fazer o login no servidor não é uma opção para mim”

Altere os httpErrors do seu site para “Detalhado” para que você possa vê-lo remotamente. Mas se isso não funcionar, seu erro pode já ser um erro de configuração, veja o item 3 imediatamente acima. Então você pode estar preso com o número 4 e você vai precisar de alguém da sua equipe de servidores.

“Não estou vendo a página de erro descrita acima. Estou vendo algo diferente”

Se você ver isso …

insira a descrição da imagem aqui

… e você espera ver algo assim …

insira a descrição da imagem aqui

… então você precisa alterar “Enviar erros para o navegador” para true no Gerenciador do IIS, em Site -> IIS -> ASP -> Debugging

Se você ver isso …

ou seja, erros amigáveis ​​1

ou isto…

ou seja, erros amigáveis ​​2

… você precisa desativar os erros amigáveis ​​em seu navegador ou usar a visualização da web do violinista para ver a resposta real versus o que seu navegador escolhe para mostrar.

Se você ver isso …

Erros personalizados ativados

… então erros personalizados estão funcionando, mas você não tem uma página de erro personalizada (é claro, neste ponto, estamos falando de .net e não de asp clássico). Você precisa alterar sua tag customErrors no seu web.config para RemoteOnly para visualizar no servidor, ou Off para ver remotamente.

Se você vir algo com estilo como seu site, os erros personalizados provavelmente serão On ou RemoteOnly e exibirão a página personalizada (Views-> Shared-> Error.cshtml no MVC, por exemplo). Dito isso, é improvável, mas é possível que alguém tenha alterado as páginas no IIS para httpErrors, portanto, veja a primeira seção sobre isso.

Uma coisa que ninguém mencionou é como uma correção muito rápida e temporária, você pode ver o erro no localhost desse servidor web.

Você também pode verificar que, se você alterou a pasta principal do site ( c:\inetpub\wwwroot ) para outra pasta, deverá conceder permissão de leitura ao grupo IIS_IUSRS na nova pasta.

Fot pessoas que tentaram TUDO e simplesmente não podem obter os detalhes do erro para mostrar, como eu, é uma boa idéia para verificar os diferentes níveis de configuração. Eu tenho um arquivo de configuração no nível do site e no nível do aplicativo (dentro do site) verificar ambos. Além disso, descobri que os Erros detalhados estavam desativados no nó mais alto do IIS (logo abaixo da Página inicial, o nome é o mesmo que os servidores da Web nome_do_computador). Verifique as páginas de erro lá.

Encontrei.

http://blogs.iis.net/ksingla/archive/2009/02/16/iis-7-5-updates-to-custom-errors-and-compression.aspx

execute cmd como administrador, vá para a pasta system32 \ inetsrv e execute:

 appcmd.exe set config -section:system.webServer/httpErrors -allowAbsolutePathsWhenDelegated:true 

Agora eu posso ver erros detalhados de asp.

Se você executar o navegador no servidor e testar seu URL do projeto com o ip local, você receberá todos os erros desse projeto sem uma página de erro geral (por exemplo, 500 página de erro).