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" />
Foi útil?

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

  1. Abra "Ativar ou desativar recursos do Windows"
  2. Vá para a seção WCF em serviços avançados do ASP.NET 4.5
  3. Verifique a ativação HTTP.
  4. Você será solicitado a reiniciar o sistema.

    Screen Shot

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:

  1. Vá para C:\Windows\System32\inetsrv\config\applicationHost.config e abra no bloco de notas
  2. 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.

Eu resolvi isso fazendo o seguinte:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

enter image description here

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:

  1. Abrir Gerenciador de IIS
  2. Selecione o servidor no painel Conexões
  3. Abrir Editor de configuração no painel principal
  4. No menu suspenso Seções, selecione a seção a ser desbloqueada, por exemplo. system.webServer > caminho padrão
  5. Clique Atributo de desbloqueio no painel direito
  6. Repita para quaisquer outras configurações que você precise desbloquear
  7. 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.

A solução que funcionou para mim foi excluir meu Web.config atual e adicionar um novo.Isso resolveu o problema para mim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top