Erro HTTP 500.19 e código de erro:0x80070021
-
26-12-2019 - |
Pergunta
Eu tenho uma webAPI simples construída pelo Visual Studio 2013.Funciona bem quando executo no VS13, mas quando copio o projeto no IIS local, ocorre o seguinte erro.
Erro HTTP 500.19 - Erro do servidor interno A página solicitada não pode ser acessada porque os dados de configuração relacionados para a página são inválidos.
Informações detalhadas sobre erros:
Módulo Núcleo da Web do IIS
Notificação BeginRequest
Manipulador Ainda não determinado
Erro de código 0x80070021
Erro de configuração Esta seção de configuração não pode ser usada neste caminho.Isso acontece quando a seção está bloqueada no nível pai.O bloqueio é por padrão (overrideModeDefault="Deny") ou definido explicitamente por uma tag de localização com overrideMode="Deny" ou o legado AllowOverride="false".
Arquivo de configuração \?\C:\inetpub\wwwroot\APITeslin\web.config
Fonte de configuração:
36: <system.webServer>
37: <handlers>
38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
Solução
Recebi exatamente o mesmo erro e cheguei a esta questão.Como @SpaceBison mencionou nos comentários, esta resposta descreve a solução - https://stackoverflow.com/a/12867753/404099.Percebi isso tarde demais e ele perdeu alguns passos.Isto é o que funcionou para mim:
Servidor Windows 2012, IIS 8.5.Deve funcionar para outras versões também.
- Vá para o gerenciador do servidor, clique em adicionar funções e recursos
- Na seção de funções, escolha:Servidor web
- Na subseção Segurança, escolha tudo (excluí resumo, restrições de IP e autorização de URL, pois não os usamos)
- Em Desenvolvimento de Aplicativos, escolha Extensibilidade .NET 4.5, ASP.NET 4.5 e ambas as entradas ISAPI
- Na seção de recursos, escolha:NET 3.5, .NET 4.5, ASP.NET 4.5
- Na seção do servidor web, escolha:Servidor Web (todos), ferramentas de gerenciamento (console de gerenciamento IIS e serviço de gerenciamento), autenticação do Windows - se você estiver usando algum deles
Outras dicas
Recebi este erro ao tentar hospedar um serviço WCF em um aplicativo ASP.NET vazio.Toda a solução foi utilizando a plataforma .NET 4.5, no IIS 8.5 rodando no Windows 8.1.A pegadinha era
- Abra "Ativar ou desativar recursos do Windows"
- Vá para a seção WCF em serviços avançados do ASP.NET 4.5
- Verifique a ativação HTTP.
Você será solicitado a reiniciar o sistema.
Isso deve corrigir o HTTP 500.19!
EDITAR 11-FEV-2016 Acabei de ter um problema no Windows 10 Pro, IIS 10. Desta vez, era um HTTP 404.0.A correção ainda é a mesma, ative "Ativação HTTP" em Recursos do Windows -> Serviços Avançados do .NET Framework 4.6 -> Serviços WCF -> Ativação HTTP
Eu também estava tendo o mesmo problema, mas depois de um brainstorming com o IIS e o Google por muitas horas.Eu descobri a solução.Este erro ocorre porque algumas configurações estão desabilitadas no IIS applicationHost.config
.
Abaixo estão as etapas para solução:
- Vá para
C:\Windows\System32\inetsrv\config\applicationHost.config
e abra no bloco de notas Altere o seguinte valor-chave presente em
<section name="handlers" overrideModeDefault="Deny" />
altere este valor de "Negar" para "Permitir"<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
altere este valor de "Negar" para "Permitir"
Funcionou para mim.
Se você estiver executando o IIS nesse computador pela primeira vez, tente executar a ferramenta de registro ASP.NET IIS (aspnet_regiis.exe).
Veja como fazer isso:Se você estiver usando o .net framework v4, abra o prompt de comando como administrador e altere o diretório para a pasta base do .net framework usando:
CD C:\Windows\Microsoft.NET\Framework\v4.0.30319
ou, se você estiver usando um computador de 64 bits, use:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
depois de navegar com êxito para o diretório apropriado, execute a ferramenta de registro ASP.NET IIS usando:
aspnet_regiis -i
Se você estiver usando uma versão diferente do .NET framework, simplesmente substitua v4.0.30319
com o nome da pasta apropriado.
Espero que isto ajude.
No Windows 8.1, IIS 8.5 a solução para mim foi registrar 4.5 no painel de controle:
Programas e recursos > Ativar ou desativar recursos do Windows > Serviços de informações > Serviços da World Wide Web > Recursos de desenvolvimento de aplicativos > Selecionar ASP.NET 4.5
Clique OK.
Como o erro indica - "Isso acontece quando a seção está bloqueada no nível pai".Para desbloquear a seção você pode usar appcmd.exe e execute o seguinte comando:
%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost
Para obter mais informações sobre o bloqueio de seção e o que é um contexto de configuração pai, consulte Documentação do IIS.
No meu caso, havia regras para IIS Reescrita de URL módulo, mas eu não tinha esse módulo instalado.Você deve verificar seu web.config se há algum módulo incluído, mas não instalado.
No nosso caso, lutamos com esse erro por alguns dias.Acontece que no painel de controle, programas, ativa ou desativa recursos do Windows.
Selecionamos Serviços de Informações da Internet, serviços da world wide web, recursos de desenvolvimento de aplicativos e lá verificamos o conjunto de recursos associados ao nosso ambiente de desenvolvimento.Por exemplo:ASP.NET 4.6.Extensibilidade .NET 4.6, etc.
Funciona!
Tente desbloquear as definições de configuração relevantes do IIS (7.5) no nível do servidor, da seguinte forma:
- Abrir Gerenciador de IIS
- Selecione o servidor no painel Conexões
- Abrir Editor de configuração no painel principal
- No menu suspenso Seções, selecione a seção a ser desbloqueada, por exemplo. system.webServer > caminho padrão
- Clique Atributo de desbloqueio no painel direito
- Repita para quaisquer outras configurações que você precise desbloquear
- Reiniciar o IIS (opcional) - Selecione o servidor no painel Conncetions, clique em Reiniciar no painel Ações
Seu web.config descreve o que você está usando autenticação de formulários - certifique-se de ativar a autenticação de formulários e desabilitar autenticação anônima no IIS no menu Autenticação, para o site que está sendo executado no IIS.
Se for o Windows 10, abra o PowerShell como administrador e execute o seguinte comando:
dism /online /enable-feature /all /featurename:IIS-ASPNET45
Por favor <staticContent />
linha e apagou-a do web.config.
Bem, estamos usando Amazon Web Services e por isso estamos procurando usar scripts e programas para resolver esse problema.Então, estou em busca de uma ferramenta de linha de comando.Então, primeiro tentei o truque de correr
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
mas como estou executando um Windows Server 2012 baseado em nuvem, ele reclamou
This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.
e eu pesquisei no Google e encontrei o oficial Página de suporte da Microsoft KB2736284.Portanto, existe uma ferramenta de linha de comando dism.exe
.Então eu tentei o seguinte
dism /online /enable-feature /featurename:IIS-ASPNET45
mas ele reclamou e deu uma lista de nomes de recursos para tentar, então tentei um por um e testei minha página WebAPI depois de cada um e funcionou depois do último da lista.
dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
E agora posso navegar até meu site WebAPI e ver as informações da API.Isso deve ajudar algumas pessoas.[No entanto, ainda não estou totalmente fora de perigo e não consigo acessar o site fora da caixa.Ainda estou trabalhando nisso.]
Além disso, executei algumas etapas anteriores seguindo as respostas de outras pessoas.Posso confirmar que a seguinte delegação de recursos precisa ser alterada (embora eu gostaria de encontrar uma ferramenta de linha de comando para eles).
In Feature delegation
Change
'Handler Mappings' from Read Only to Read/Write
Change
'Modules' from Read Only to Read/Write
Change
'SSL Settings' from Read Only to Read/Write
Para aplicativos .NET Core no Windows Server (no meu caso 2012 com IIS 10) funcionou após a instalação do pacote de hospedagem do .NET Core Windows Server (link).
Verifique se o servidor IIS instalou o recurso de reescrita de URL.
Se não estiver instalado, certifique-se de que seu arquivo web.config não tenha a configuração relacionada à reescrita de URL
<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/> ...
Algum tempo copiamos a configuração do servidor legado e imediatamente implantamos em um novo servidor, então podemos encontrar esse tipo de problema 500.
Funciona e economiza meu tempo.Tente Erro HTTP 500.19 – Erro interno do servidor – 0x80070021 (IIS 8.5)
A solução que funcionou para mim foi excluir meu Web.config atual e adicionar um novo.Isso resolveu o problema para mim