O erro interno do servidor HTTP 500 do IIS5 é um erro que encontramos com frequência, então como resolvê-lo? Hoje vou te explicar como resolver isso completamente!
O erro interno do servidor HTTP 500 do IIS5 é um dos erros que encontramos com frequência. Sua principal manifestação de erro é que o programa ASP não consegue navegar, mas a página da web estática HTM não é afetada. Além disso, quando ocorre um erro, o log de eventos do sistema e o log de eventos de segurança terão registros correspondentes.
Os detalhes são os seguintes:
(1) Desempenho no IE
Ao navegar em uma página asp que anteriormente funcionava normalmente, ocorrerá o seguinte erro:
A página da web não pode ser exibida
Há um problema com a página que você está tentando acessar, por isso ela não pode ser exibida.
Por favor, tente o seguinte:
Abra a página inicial http://127.0.0.1 e procure links para as informações que você precisa.
Clique no botão atualizar ou tente novamente mais tarde.
HTTP 500 - Erro interno do servidor
Serviços de informação da Internet
Informações Técnicas (Indivíduos de Suporte)
Detalhes:
Suporte da Microsoft
Ou:
Erro no aplicativo do servidor
O servidor encontrou um erro ao carregar um aplicativo durante o processamento de sua solicitação. Consulte o log de eventos para obter informações mais detalhadas.
(2) Registros de log de segurança (2 itens)
Tipo de evento: auditoria com falha
Fonte do Evento: Segurança
Tipo de Evento: Login/Logout
ID do evento: 529
Data: 9/9/2001
Evento: 11:17:07
Usuário: NT AUTHORITYSYSTEM
Computador: MEUSERVIDOR
descrever:
Falha no login:
Motivo: Nome de usuário desconhecido ou senha errada
Nome de usuário: IWAM_MYSERVER
Domínio: MEUDOM
Tipo de login: 4
Processo de login: Advapi
Pacote de autenticação: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Nome da estação de trabalho: MYSERVER
Tipo de evento: auditoria com falha
Fonte do Evento: Segurança
Tipo de evento: Login da conta
ID do evento: 681
Data: 9/9/2001
Evento: 11:17:07
Usuário: NT AUTHORITYSYSTEM
Computador: MEUSERVIDOR
descrever:
Faça login na conta: IWAM_MYSERVER
Usuário logado: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Da estação de trabalho: MYSERVER
Sem sucesso. O código de erro é: 3221225578
(3) Registros no log do sistema (2 itens)
Tipo de evento: erro
Fonte do evento: DCOM
Tipo de Evento: Nenhum
ID do evento: 10004
Data: 9/9/2001
Evento: 11:20:26
Usuário: N/A
Computador: MEUSERVIDOR
descrever:
O DCOM encontrou o erro "Não foi possível atualizar a senha. O valor fornecido para a nova senha contém um valor que não é permitido na senha." e não conseguiu efetuar login para executar o servidor em .IWAM_MYSERVER:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
Tipo de Evento: Aviso
Fonte do evento: W3SVC
Tipo de Evento: Nenhum
ID do evento: 36
Data: 9/9/2001
Evento: 11:20:26
Usuário: N/A
Computador: MEUSERVIDOR
descrever:
O servidor falhou ao preparar o aplicativo '/LM/W3SVC/4/Root'. O erro é 'RunAs deve ter o formato <nome de domínio><nome de usuário> ou apenas <nome de usuário>'.
Para obter mais informações sobre esta mensagem, visite o site de suporte online da Microsoft: http://www.microsoft.com/contentredirect.asp.
[Página cortada]
Análise abrangente do desempenho do erro acima, podemos ver que o erro interno HTTP 500 é causado principalmente pela senha incorreta da conta IWAM (que é a conta IWAM_MYSERVER no meu computador).
Antes de analisar detalhadamente as causas dos erros internos do HTTP500, vamos fazer uma breve introdução à conta IWAM: A conta IWAM é uma conta interna criada automaticamente pelo sistema durante a instalação do IIS5. Ela é usada principalmente para iniciar serviços de informações da Internet para aplicativos. fora do processo. O nome da conta IWAM irá variar de acordo com o nome NETBIOS de cada computador. O formato comum é IWAM_MACHINE, que consiste no prefixo "IWAM", na linha de conexão "_" e no nome NETBIOS do computador. O nome NETBIOS do meu computador é MYSERVER, portanto o nome da conta IWAM no meu computador é IWAM_MYSERVER, que é muito semelhante ao método de nomenclatura da conta anônima do IIS ISUR_MACHINE.
Depois que a conta IWAM é estabelecida, ela é usada em conjunto pelo Active Directory, banco de dados da metabase IIS e aplicativo COM+. A senha da conta é salva pelas três partes, respectivamente, e o sistema operacional é responsável pela sincronização das senhas IWAM salvas por essas três. festas. De acordo com o bom senso, podemos ter certeza de que o sistema operacional é responsável pelo trabalho e não precisamos nos preocupar com erros. Porém, seja um bug ou outros motivos, o trabalho de sincronização de senha do sistema para contas IWAM às vezes falha, causando. as senhas usadas pelas contas IWAM de três partes são inconsistentes. Quando um aplicativo IIS ou COM+ usa uma senha IWAM incorreta para efetuar login no sistema e inicia aplicativos em pool fora de processo do IIS, o sistema rejeitará a solicitação devido a uma senha incorreta, fazendo com que aplicativos em pool fora de processo do IIS sejam falha ao iniciar. Vemos "Não é possível executar o servidor {3D14228D-FBE1-11D0-995D-00C04FD919C1}" no evento de erro ID10004 (aqui {3D14228D-FBE1-11D0-995D-00C04FD919C1} é a CHAVE do IIS fora do processo Aplicativos em pool), não podem ser transferidos para o aplicativo IIS5 e ocorre o erro interno HTTP 500.
Conhecendo a causa do erro interno HTTP 500, a solução é relativamente simples, que consiste em sincronizar manualmente as senhas da conta IWAM no Active Directory, banco de dados da metabase IIS e aplicação COM+.
A operação específica é dividida em três etapas e você precisa fazer login no computador como administrador para fornecer permissões operacionais suficientes (a conta IWAM é IWAM_MYSERVER como exemplo).
(1) Altere a senha da conta IWAM_MYSERVER no Active Directory
Como a senha da conta IWAM é controlada pelo sistema e gerada aleatoriamente, não sabemos o que é. Para concluir as duas etapas a seguir de sincronização de senha, devemos definir a senha da conta IWAM para um valor que nós. saber.
1. Selecione "Iniciar" -> "Programas" -> "Ferramentas Administrativas" -> "Usuários e Computadores do Active Directory" para iniciar o snap-in "Usuários e Computadores do Active Directory".
2. Clique em "usuário", selecione "IWAM_MYSERVER" à direita, clique com o botão direito e selecione "Redefinir senha (T)..." e defina uma nova senha para IWAM_MYSERVER na caixa de redefinição de senha que aparece. Aqui definimos. para "Aboutnt2001" (sem aspas), OK, aguarde a alteração da senha com sucesso.
(2) Sincronize a senha da conta IWAM_MYSERVER na metabase do IIS
Talvez porque essa alteração seja muito sensível e importante, a Microsoft não fornece uma interface de usuário explícita para modificarmos a senha da conta IWAM_MYSERVER na metabase do IIS. Ela fornece apenas um script de gerenciamento adsutil.vbs com IIS5. inetpub No subdiretório adminscripts (o local pode mudar devido a configurações diferentes quando você instala o IIS5).
O script adsutil.vbs é poderoso, tem muitos parâmetros e é complicado de usar. Aqui fornecemos apenas o método de uso deste script para modificar a senha da conta IWAM_MYSERVER:
adsutil SET w3svc/WAMUserPass Senha
O parâmetro “Senha” é a nova senha da conta IWAM a ser configurada. Portanto, o comando para alterar a senha da conta IWAM_MYSERVER na metabase do IIS para “Aboutnt2001” é:
c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass "Aboutnt2001"
Depois que a modificação for bem-sucedida, o sistema solicitará o seguinte:
WAMUserPass: (String) "Aboutnt2001"
(3) Senha IWAM_MYSERVER usada para sincronizar aplicativos COM+
Para sincronizar a senha de IWAM_MYSERVER usada por aplicativos COM+, temos duas maneiras de escolher: uma é usar o snap-in MMC de serviço de componente e a outra é usar o script de sincronização de conta IWAM synciwam.vbs.
1. Use a unidade de gerenciamento MMC de serviço de componente
(1) Inicie o snap-in de Serviços de Componentes: Selecione "Iniciar" -> "Executar" -> "MMC", inicie o console de gerenciamento, abra a caixa de diálogo "Adicionar/Remover Snap-in" e adicione o "Serviços de Componentes "encaixe.
(2) Encontre "Serviços de componentes" -> "Computador" -> "Meu computador" -> "Aplicativos COM+" -> "Aplicativos em pool fora do processo", clique com o botão direito em "Aplicativos em pool fora do processo" - > "Propriedades".
(3) Mude para a guia "Sinalizadores" da caixa de diálogo de propriedades "Aplicativos em pool fora do processo". Na seleção "Este aplicativo é executado na seguinte conta", "Este usuário" será selecionado e o nome de usuário será "IWAM_MYSERVER". Eles são padrão e não precisam ser alterados. Digite a senha correta "Aboutnt2001" nas caixas de texto "Senha" e "Confirmar senha" abaixo e confirme para sair.
(4) Se o sistema solicitar "O aplicativo foi criado por mais de um produto externo. Tem certeza de que deseja ter suporte para esses produtos?"
(5) Se definirmos a "Proteção de Aplicativo" de algumas outras Webs como "Alta (Independente)" no IIS, a senha da conta IWAM do aplicativo COM+ usado por esta WEB também precisará ser sincronizada. Repita as etapas (1)-(4) para sincronizar as senhas da conta IWAM de outros aplicativos fora de processo correspondentes.
2. Use a conta IWAM para sincronizar o script synciwam.vbs
Na verdade, a Microsoft descobriu que há problemas com a sincronização de senhas de contas IWAM, por isso escreveu um script separado synciwam.vbs para sincronização de senha de contas IWAM no script de gerenciamento IIS5. Este script está localizado em C:inetpubadminscripts. subdiretório (o local pode ser Ele mudará dependendo das configurações definidas ao instalar o IIS5).
O uso do script synciwam.vbs é relativamente simples:
cscript synciwam.vbs [-v|-h]
O parâmetro "-v" significa exibir todo o processo de execução do script em detalhes (recomendado), e o parâmetro "-h" é usado para exibir informações de ajuda simples.
Se quisermos sincronizar a senha da conta IWAM_MYSERVER na aplicação COM+, só precisamos executar "cscript synciwam.vbs -v", da seguinte forma:
cscript c:inetpubadminscriptssynciwam.vbs -v
Host de script do Microsoft (R) Windows versão 5.6
Direitos autorais (C) Microsoft Corporation 1996-2000. Todos os direitos reservados.
WamUserName:IWAM_MYSERVER
WamUserPass:Aboutnt2001
Aplicativos IIS definidos:
Nome, AppIsolated, ID do pacote
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Raiz, 2,
IISAjuda, 2,
IISAdmin, 2,
Amostras IISS, 2,
MSADC, 2,
RAIZ, 2,
IISAdmin, 2,
IISAjuda, 2,
Raiz, 2,
Raiz, 2,
Aplicativos fora do processo definidos:
Contagem: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Atualizando aplicativos:
Nome: Chave de aplicativos em pool fora do processo do IIS: {3D14228D-FBE1-11D0-995D-00C04FD919C1}
Pode-se observar pela execução do script acima que usar o script synciwam.vbs é mais abrangente e rápido do que usar serviços de componentes. Ele primeiro encontra a conta IWAM "IWAM_MYSERVER" no banco de dados da metabase do IIS e recupera a senha correspondente "Aboutnt2001", depois procura todos os aplicativos IIS e aplicativos fora de processo definidos e sincroniza a conta IWAM de cada aplicativo fora de processo, um por um . senha.
Ao usar o script synciwam.vbs, uma coisa a ser observada é que antes de executar o synciwam.vbs, você deve garantir que o banco de dados da metabase do IIS e a senha IWAM no Active Directory sejam consistentes. Como o script synciwam.vbs obtém a senha da conta IWAM do banco de dados da metabase do IIS em vez do Active Directory, se a senha na metabase do IIS estiver incorreta, a senha obtida por synciwam.vbs também estará incorreta e a operação de sincronização é executado para "Atualizando Aplicativos" O sistema reportará um erro 80110414, ou seja, "O aplicativo {3D14228D-FBE1-11D0-995D-00C04FD919C1} não pode ser encontrado".
Ok, até agora, as senhas da conta IWAM no Active Directory, banco de dados da metabase IIS e aplicativo COM+ foram sincronizadas com sucesso e seu programa ASP pode ser executado novamente!
[Página cortada]Análise abrangente do desempenho do erro acima, podemos ver que o erro interno HTTP 500 é causado principalmente pela senha incorreta da conta IWAM (que é a conta IWAM_MYSERVER no meu computador).
Antes de analisar detalhadamente as causas dos erros internos do HTTP500, vamos fazer uma breve introdução à conta IWAM: A conta IWAM é uma conta interna criada automaticamente pelo sistema durante a instalação do IIS5. Ela é usada principalmente para iniciar serviços de informações da Internet para aplicativos. fora do processo. O nome da conta IWAM irá variar de acordo com o nome NETBIOS de cada computador. O formato comum é IWAM_MACHINE, que consiste no prefixo "IWAM", na linha de conexão "_" e no nome NETBIOS do computador. O nome NETBIOS do meu computador é MYSERVER, portanto o nome da conta IWAM no meu computador é IWAM_MYSERVER, que é muito semelhante ao método de nomenclatura da conta anônima do IIS ISUR_MACHINE.
Depois que a conta IWAM é estabelecida, ela é usada em conjunto pelo Active Directory, banco de dados da metabase IIS e aplicativo COM+. A senha da conta é salva pelas três partes, respectivamente, e o sistema operacional é responsável pela sincronização das senhas IWAM salvas por essas três. festas. De acordo com o bom senso, podemos ter certeza de que o sistema operacional é responsável pelo trabalho e não precisamos nos preocupar com erros. Porém, seja um bug ou outros motivos, o trabalho de sincronização de senha do sistema para contas IWAM às vezes falha, causando. as senhas usadas pelas contas IWAM de três partes são inconsistentes. Quando um aplicativo IIS ou COM+ usa uma senha IWAM incorreta para efetuar login no sistema e inicia aplicativos em pool fora de processo do IIS, o sistema rejeitará a solicitação devido a uma senha incorreta, fazendo com que aplicativos em pool fora de processo do IIS sejam falha ao iniciar. Vemos "Não é possível executar o servidor {3D14228D-FBE1-11D0-995D-00C04FD919C1}" no evento de erro ID10004 (aqui {3D14228D-FBE1-11D0-995D-00C04FD919C1} é a CHAVE do IIS fora do processo Aplicativos em pool), não podem ser transferidos para o aplicativo IIS5 e ocorre o erro interno HTTP 500.
Conhecendo a causa do erro interno HTTP 500, a solução é relativamente simples, que consiste em sincronizar manualmente as senhas da conta IWAM no Active Directory, banco de dados da metabase IIS e aplicação COM+.
A operação específica é dividida em três etapas e você precisa fazer login no computador como administrador para fornecer permissões operacionais suficientes (a conta IWAM é IWAM_MYSERVER como exemplo).
(1) Altere a senha da conta IWAM_MYSERVER no Active Directory
Como a senha da conta IWAM é controlada pelo sistema e gerada aleatoriamente, não sabemos o que é. Para concluir as duas etapas a seguir de sincronização de senha, devemos definir a senha da conta IWAM para um valor que nós. saber.
1. Selecione "Iniciar" -> "Programas" -> "Ferramentas Administrativas" -> "Usuários e Computadores do Active Directory" para iniciar o snap-in "Usuários e Computadores do Active Directory".
2. Clique em "usuário", selecione "IWAM_MYSERVER" à direita, clique com o botão direito e selecione "Redefinir senha (T)..." e defina uma nova senha para IWAM_MYSERVER na caixa de redefinição de senha que aparece. Aqui definimos. para "Aboutnt2001" (sem aspas), OK, aguarde a alteração da senha com sucesso.
(2) Sincronize a senha da conta IWAM_MYSERVER na metabase do IIS
Talvez porque essa alteração seja muito sensível e importante, a Microsoft não fornece uma interface de usuário explícita para modificarmos a senha da conta IWAM_MYSERVER na metabase do IIS. Ela fornece apenas um script de gerenciamento adsutil.vbs com IIS5. inetpub No subdiretório adminscripts (o local pode mudar devido a configurações diferentes quando você instala o IIS5).
O script adsutil.vbs é poderoso, tem muitos parâmetros e é complicado de usar. Aqui fornecemos apenas o método de uso deste script para modificar a senha da conta IWAM_MYSERVER:
adsutil SET w3svc/WAMUserPass Senha
O parâmetro “Senha” é a nova senha da conta IWAM a ser configurada. Portanto, o comando para alterar a senha da conta IWAM_MYSERVER na metabase do IIS para “Aboutnt2001” é:
c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass "Aboutnt2001"
Depois que a modificação for bem-sucedida, o sistema solicitará o seguinte:
WAMUserPass: (String) "Aboutnt2001"
(3) Senha IWAM_MYSERVER usada para sincronizar aplicativos COM+
Para sincronizar a senha de IWAM_MYSERVER usada por aplicativos COM+, temos duas maneiras de escolher: uma é usar o snap-in MMC de serviço de componente e a outra é usar o script de sincronização de conta IWAM synciwam.vbs.
1. Use a unidade de gerenciamento MMC de serviço de componentes
(1) Inicie o snap-in de Serviços de Componentes: Selecione "Iniciar" -> "Executar" -> "MMC", inicie o console de gerenciamento, abra a caixa de diálogo "Adicionar/Remover Snap-in" e adicione o "Serviços de Componentes "encaixe.
(2) Encontre "Serviços de componentes" -> "Computador" -> "Meu computador" -> "Aplicativos COM+" -> "Aplicativos em pool fora do processo", clique com o botão direito em "Aplicativos em pool fora do processo" - > "Propriedades".
(3) Mude para a guia "Sinalizadores" da caixa de diálogo de propriedades "Aplicativos em pool fora do processo". Na seleção "Este aplicativo é executado na seguinte conta", "Este usuário" será selecionado e o nome de usuário será "IWAM_MYSERVER". Eles são padrão e não precisam ser alterados. Digite a senha correta "Aboutnt2001" nas caixas de texto "Senha" e "Confirmar senha" abaixo e confirme para sair.
(4) Se o sistema solicitar "O aplicativo foi criado por mais de um produto externo. Tem certeza de que deseja ter suporte para esses produtos?"
(5) Se definirmos a "Proteção de Aplicativo" de algumas outras Webs como "Alta (Independente)" no IIS, a senha da conta IWAM do aplicativo COM+ usado por esta WEB também precisará ser sincronizada. Repita as etapas (1)-(4) para sincronizar as senhas da conta IWAM de outros aplicativos fora de processo correspondentes.
2. Use a conta IWAM para sincronizar o script synciwam.vbs
Na verdade, a Microsoft descobriu que há problemas com a sincronização de senhas de contas IWAM, por isso escreveu um script separado synciwam.vbs para sincronização de senha de contas IWAM no script de gerenciamento IIS5. Este script está localizado em C:inetpubadminscripts. subdiretório (o local pode ser Ele mudará dependendo das configurações definidas ao instalar o IIS5).
O uso do script synciwam.vbs é relativamente simples:
cscript synciwam.vbs [-v|-h]
O parâmetro "-v" significa exibir todo o processo de execução do script em detalhes (recomendado), e o parâmetro "-h" é usado para exibir informações de ajuda simples.
Se quisermos sincronizar a senha da conta IWAM_MYSERVER na aplicação COM+, só precisamos executar "cscript synciwam.vbs -v", da seguinte forma:
cscript c:inetpubadminscriptssynciwam.vbs -v
Host de script do Microsoft (R) Windows versão 5.6
Direitos autorais (C) Microsoft Corporation 1996-2000. Todos os direitos reservados.
WamUserName:IWAM_MYSERVER
WamUserPass:Aboutnt2001
Aplicativos IIS definidos:
Nome, AppIsolated, ID do pacote
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Raiz, 2,
IISAjuda, 2,
IISAdmin, 2,
Amostras IISS, 2,
MSADC, 2,
RAIZ, 2,
IISAdmin, 2,
IISAjuda, 2,
Raiz, 2,
Raiz, 2,
Aplicativos fora do processo definidos:
Contagem: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Atualizando aplicativos:
Nome: Chave de aplicativos em pool fora do processo do IIS: {3D14228D-FBE1-11D0-995D-00C04FD919C1}
Pode-se observar pela execução do script acima que usar o script synciwam.vbs é mais abrangente e rápido do que usar serviços de componentes. Ele primeiro encontra a conta IWAM "IWAM_MYSERVER" no banco de dados da metabase do IIS e recupera a senha correspondente "Aboutnt2001", depois procura todos os aplicativos IIS e aplicativos fora de processo definidos e sincroniza a conta IWAM de cada aplicativo fora de processo, um por um . senha.
Ao usar o script synciwam.vbs, uma coisa a ser observada é que antes de executar o synciwam.vbs, você deve garantir que o banco de dados da metabase do IIS e a senha IWAM no Active Directory sejam consistentes. Como o script synciwam.vbs obtém a senha da conta IWAM do banco de dados da metabase do IIS em vez do Active Directory, se a senha na metabase do IIS estiver incorreta, a senha obtida por synciwam.vbs também estará incorreta e a operação de sincronização é executado para "Atualizando Aplicativos" O sistema reportará um erro 80110414, ou seja, "O aplicativo {3D14228D-FBE1-11D0-995D-00C04FD919C1} não pode ser encontrado".
Ok, até agora, as senhas da conta IWAM no Active Directory, banco de dados da metabase IIS e aplicativo COM+ foram sincronizadas com sucesso e seu programa ASP pode ser executado novamente!