Erro de configuração: Esta seção de configuração não pode ser usada neste caminho

1780

Eu encontrei um erro ao implantar um site em um servidor. Ao tentar carregar a página inicial ou acessar a autenticação no novo site no IIS, recebo o erro:

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 = "Negar") ou configurado explicitamente por uma tag de local com overrideMode = "Negar" ou pelo legado allowOverride = "false".

Mais detalhes podem ser encontrados aqui, no cenário 7 corresponde ao meu código de erro hexadecimal.

A solução fornecida no site vinculado acima é definir Allow for overrideModeDefault na seção mencionada no meu erro, no arquivo applicationHost.config . No meu caso, em Segurança em system.webServer . Mas se eu olhar para o applicationHost.config no meu computador local, onde o site já está implantado corretamente, essa seção será definida como Negar .

Se esta solução estiver correta, como minha instância local está funcionando perfeitamente com o mesmo web.config ? De acordo com meu applicationHost.config , essa seção deve estar bloqueada, mas não está. Prefiro não alterar o arquivo applicationHost.config , porque existem muitos outros sites em execução nesse servidor. Existe outra solução?

Alex
fonte
2
Se você veio aqui porque recebeu esse erro ao tentar usar o programa "Certificar a Web" ( certifytheweb.com ), este artigo de blog pode ser relevante: renniestechblog.com/information/…
RenniePet

Respostas:

3332

Eu tive o mesmo problema. Não lembro onde o encontrei na web, mas aqui está o que eu fiz:

  • Clique no botão "Iniciar"
  • na caixa de pesquisa, digite "Ativar ou desativar recursos do Windows"
  • na janela de recursos, clique em: "Internet Information Services"
  • Clique em: "Serviços da World Wide Web"
  • Clique em: "Recursos de desenvolvimento de aplicativos"
  • Marque (ative) os recursos. Eu verifiquei tudo, menos CGI.

Aliás, eu estou usando o Windows 7.

chuck97224
fonte
84
Criou um novo Windows Server 2012 e, com certeza, esqueceu de adicionar o Desenvolvimento de aplicativos no Servidor Web. Eu verifiquei todos, exceto CGI, ASP e inclusões no lado do servidor, pois não tenho ASP clássico aqui.
Chris
49
Verifiquei os 'Recursos de desenvolvimento de aplicativos', mas percebi depois que nenhum dos recursos dessa pasta havia sido selecionado para ser ativado. Selecionei manualmente cada recurso (exceto CGI) para remover o erro.
Ciaran Gallagher
30
Confirmado para o IIS8 no Windows 8 também.
Babak Naffas 27/10
74
Confirmado para IIS8.5 para Windows 8.1.
Mike P.
75
Confirmado para Windows 10 (IIS 10.0 Build 10240)
sixones
381

Você também pode usar o Gerenciador do IIS para editar essas configurações.

Cuidado com este artigo do Learn IIS :

Usando a delegação de recursos da raiz do IIS:

Feature delegation icon in IIS Manager

Você pode controlar cada uma das permissões de leitura / gravação no nível da máquina, que, de outra forma, fornecerão os erros overrideMode = "Negar" .

Example use of Feature Delegation

Sobrecarregado
fonte
16
Para continuar, o que funcionou para mim (observe que esta solução está na minha caixa DEV e NÃO no sistema de produção): -> Classificar por delegação -> Encontrar todos os tipos Somente leitura -> Defina-os como Leitura / Gravação
Aaron Reed
1
Isso corrigiu a mensagem de erro que eu estava recebendo no gerenciador do IIS7. O mais surpreendente é que ele também corrigiu os clientes HTTP 500 que estavam recebendo ao tentar acessar o site.
Brian Gideon
6
Há duas soluções aparentemente diferentes postadas aqui, ambas necessárias. O primeiro, instale os recursos de suporte "Servidor de aplicativos" e "Servidor da Web". A segunda é a verificação das configurações da delegação e altere a configuração incorreta para Leitura / Gravação somente leitura. Importante para NOTA: A configuração incorreta pode não estar disponível nos recursos de Delegação, a menos que os Recursos de Suporte corretos estejam instalados. No meu caso, "Autenticação - Anônimo" foi o problema, e esse recurso de delegação não apareceu até eu instalar o recurso Servidor de Aplicativos.
Maplemale
1
Isso funcionou para mim. no IIS 8.5, servidor Windows 2012 R2
ellickakudy rajeesh
1
O problema para mim estava na seção de autenticação, no IIS 10 no Windows 10. Este link me ajudou. knowledgebase.progress.com/articles/Article/…
Ajith
185

Para Windows Server 2012 e IIS 8 , o procedimento é semelhante.

O Web Server (IIS)e Application Serverdeve estar instalado e você também deve ter o opcional Web Server (IIS) Supportem Application Server.

Windows Server 2012 and IIS 8 Requirements for MVC

ken
fonte
30
Apenas para esclarecer, a caixa de seleção "Suporte do servidor Web (IIS)" não está no nó 'Servidor de aplicativos' na foto acima. Ele será exibido depois que você executar vários 'próximos' e passar as Funções e Recursos do Servidor na barra de navegação esquerda e chegar a 'Serviços de Funções' (não aparece na foto acima, mas aparecerá depois de vários 'próximos'). Isso me deixou louco: P
thedrs
2
para mim as opções só apareceu depois que eu adicionado em primeiro lugar a regra Application Server depois reiniciado as funções Add e Recursos Assistente
wonster
145

Navegue até “C: \ Windows \ System32 \ inetsrv \ config” (você precisará de direitos de administrador aqui) Abra applicationHost.config

Nota : No IISExpress e no Visual Studio 2015, o applicationHost.config é armazenado em$(solutionDir).vs\config\applicationhost.config

Encontre a seção que apareceu na parte “fonte de configuração” da página de mensagem de erro. Para mim, isso geralmente tem sido "módulos" ou "manipuladores"

Mude o overrideModeDefaultatributo para serAllow

Portanto, a linha inteira agora se parece com:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

Depois de salvar o arquivo, a página foi carregada corretamente no meu navegador.

Aviso: Editando applicationHost.config no Windows de 64 bits

Nime Cloud
fonte
2
O link para 64 bits é 404, para pior você não incluiu as informações úteis diretamente em sua resposta.
Erik Philips
1
Era isso para mim no ambiente de desenvolvimento ipSecurity no Windows 8.1, +1.
Moby's Stunt Double
Para 64 bits do Windows, você precisa passar por notepad.exe e abrir% SystemRoot% \ System32 \ inetsrv \ config para obter a cópia correta do arquivo
Eddie Fletcher
Aconteceu comigo ao depurar localmente no Visual Studio 2017, na seção 'autenticação'. Poupança de vida!
D Ou seja,
69

Você precisa desbloquear manipuladores. Isso pode ser feito usando o seguinte comando cmd:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

Talvez outra informação para as pessoas que estão recebendo esse erro no IIS 8, no meu caso, estivesse na plataforma Microsoft Server 2012. Passei algumas horas lutando com outros erros que surgiram após a execução do appcmd. No final, pude corrigi-lo removendo a Função de servidor da Web e instalando-a novamente.

Gregor Primar
fonte
Isso funcionou para mim também para system.webServer / segurança / segurança IP
Bart Calixto
3
Bingo. Teve que executar como administrador.
precisa saber é o seguinte
3
Eu tive que fazer isso para a seção: system.webServer / modules também.
Mike
1
trabalhou para mim - eu estava olhando para set /section:access /sslFlags:SslNegotiateCerte descobri que eu tive que usar o acima com -section:access que relatou comoUnlocked section "system.webServer/security/access"...
Shaun Wilde
1
Trabalhou para mim no Windows Server 2012 R2
Robben_Ford_Fan_boy
50

1. Abra " Ativar ou desativar recursos do Windows " por: WinKey + R => "optionalfeatures" => OK

enter image description here

  1. Ative esses recursos em " Recursos de desenvolvimento de aplicativos"

enter image description here

Testado no Win 10 - Mas provavelmente também funcionará em outras versões do Windows.

Aviram Fireberger
fonte
2
perfeito. Eu só precisava marcar a caixa do ASP.NET 4.7 e ela selecionava automaticamente todos os outros requisitos necessários. Funcionou como um encanto sem nem mesmo reiniciar o site.
Bill Tarbell
Para nós, noobs do IIS, verificar se a versão correta do asp.net está realmente instalada deve ser o primeiro passo.
26419 jrfelis
1
excelente companheiro: D
Fabio Silva Lima
38

Eu executei esses dois comandos em um prompt de comando elevado:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config /section:windowsAuthentication
Benji
fonte
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post .
Rook
19
@Rook é uma resposta perfeitamente boa, pois não promove cegamente a ativação dos Recursos de Desenvolvimento de Aplicativos no servidor; ele indica uma solução controlada para um cenário específico de obter esse erro. Poderia ter sido melhor redigido. Bom trabalho, aumentando a confiança do novo cara - ele nunca voltou depois que você e NAZIK opinaram por toda sua primeira tentativa de ingressar na comunidade.
qujck
1
Isso corrigiu meu problema com um aplicativo que tinha configuração no nível de aplicativo da autenticação do Windows.
nebffa
Nice, este fez o truque onde os recursos de desenvolvimento de aplicativos não
Stephen Holt
1
Funciona para mim, mas por quê?
precisa saber é o seguinte
37

Conforme minha resposta a esse problema semelhante ;

Tente desbloquear as configurações relevantes do IIS no nível do servidor, da seguinte maneira:

  1. Abra o Gerenciador do IIS
  2. Selecione o servidor no painel Conexões
  3. Abra o Editor de configuração no painel principal
  4. No menu suspenso Seções, selecione a seção para desbloquear, por exemplo system.webServer> defaultPath
  5. Clique em Desbloquear atributo no painel direito
  6. Repita para todas as outras configurações que você precisa desbloquear
  7. Reiniciar o IIS (opcional) - selecione o servidor no painel Conexões, clique em Reiniciar no painel Ações
Chris
fonte
1
Essa solução funcionou para mim, mas o motivo real era diferente - eu tive que instalar o ASP.NET 4.5 (Add-WindowsFeature Web-Asp-Net45).
Der_Meister
26

No Windows Server 2012 com IIS 8 , resolvi isso ativando o recurso ASP.NET 4.5 :

insira a descrição da imagem aqui

e depois seguindo a resposta de ken .

Kimi
fonte
2
No PowerShell: Add-WindowsFeature Web-Asp-Net45
Der_Meister
26

A melhor opção é Alterar Application Settingsna seleção Custom Site Delegation
Abrir IISe na raiz Feature Delegatione, em seguida, selecionar Application Settingse, na barra lateral direita, selecionarRead/Write Passo 1 Passo 2

Dr TJ
fonte
Meu gerente do IIS não possui muitos desses recursos. Eu acho que tenho que adicioná-los através dos recursos do Windows. Eu tinha todos eles selecionados (caixa quadrada preta), mas quando clico nele, nenhuma das opções foi selecionada! Eu nunca vi isso usando todo o sistema operacional Windows. Que vergonha, Microsoft! Perdeu muito tempo. Verifique se todos os recursos do Windows são verificadas que são DESIRED..DO não usa o preto quadrado de seleção
yardpenalty.com
3
Ou entenda o que significa o "quadrado preto" ao instalar o software em seu servidor.
LarryBud
1
Posso adicionar a etapa 2.1 -> clique em "delegação de site personalizado" à direita e escolha o site que você deseja permitir substituir no menu suspenso superior. Sugiro não permitir a substituição em todos os sites, mas apenas no site que você precisa. Em seguida, continue com a etapa 3.
foxontherock
26

Isso funcionou para mim, para o IIS 8 Windows server 2012 R2

Vá para "Ativar recursos"

Em seguida, vá para todas as configurações padrão, Avançar, Avançar, Avançar etc.

Em seguida, selecione como mostrado abaixo, insira a descrição da imagem aqui

Em seguida, redefina o IIS (opcional), mas faça o lado mais seguro.

insira a descrição da imagem aqui

Esta é uma solução adicional, pois é um problema genérico que todos têm diferentes problemas e, portanto, uma solução diferente. Felicidades!

Usman Younas
fonte
1
isso também funciona no servidor windows 2016
M. Schena 04/04
1
Este funciona para mim
aronccs
O trabalho aperfeiçoa no Windows Server 2016!
D Todorov
17

Para corrigir isso, abra o IIS Express applicationhost.config. Este arquivo é armazenado em C: \ Users [seu nome de usuário] \ Documents \ IISExpress \ config \ applicationhost.config

A atualização para o VS2015 +: o local do arquivo de configuração é $ (solutionDir) .vs \ config \ applicationhost.config

Procure as seguintes linhas

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

Mude essas linhas para

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

Salve e atualize a página Asp.net.

Rao Adnan
fonte
15

No nosso caso, no IIS 8, descobrimos que o erro foi produzido ao tentar exibir a autenticação "de um site, quando:

  1. A delegação de recursos do servidor marcada como "Autenticação - Windows" = "Somente leitura"
  2. O site tinha um web.config que referenciava explicitamente a autenticação do Windows; por exemplo,

Marcando o site Delegação de Recursos "Autenticação - Windows" = "Leitura / Gravação", o erro desapareceu. Parece que, com o recurso marcado como "Somente leitura", o web.config não tem permissão para fazer referência a ele, nem mesmo para desativá-lo, pois isso aparentemente constitui uma gravação.

site web.config Gerenciador do IIS - Delegação de recursos do servidor

Barra de ferro
fonte
13

Parece que, com o IIS Express e o VS 2015, há uma cópia do arquivo applicationHost.config em $ (solutionDir) .vs \ config \ applicationhost.config, portanto, você precisará fazer alterações lá. Veja este link: http://digitaldrummerj.me/iis-express-windows-authentication/

Verifique se essas linhas foram alteradas conforme abaixo:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
PBMe_HikeIt
fonte
12

No meu caso, foi no servidor que não foi ativada "Ativação HTTP" nos Recursos do .NET Framework. Portanto, para o Windows Server 2012, a solução que funcionou para mim foi:

Gerenciador de servidores -> Adicionar funções e recursos -> Recursos -> verifique se, no .NET Framework da versão que você deseja usar, está marcada "Ativação HTTP"

Pavel Nemec
fonte
não funcionou @Ray no Windows 7, 8, 10, 2008, servidor 2012?
Kiquenet
9

A maneira do Powershell de ativar os recursos (Windows Server 2012 +) - apare conforme necessário:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature
Chris S
fonte
6

Eu precisava alterar as configurações de SSL em uma subpasta quando recebi essa boa mensagem. No meu caso, seguir a ação me ajudou.

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config aberto

E alterou o valor de overrideModeDefault = "Negar" para "Permitir"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>
Stefan Michev
fonte
6

O erro diz que a seção de configuração está bloqueada no nível pai. Portanto, não haverá diretamente 1 arquivo de configuração que resolverá o problema. Precisamos passar pela hierarquia dos arquivos de configuração para ver a herança. Verifique o link abaixo para passar pela hierarquia e herança de arquivos no IIS

https://msdn.microsoft.com/en-us/library/ms178685.aspx

Então, você precisa verificar as definições de configuração do aplicativo na ordem abaixo

  1. ApplicationHost.config em C: windows \ system32 \ inetsrv \ config. Altere o atributo overrideModeDefault para Allow.
  2. ApplicationName.config ou web.config no diretório de aplicativos
  3. Web.config no diretório raiz.
  4. Web.config no site específico (meu problema foi encontrado neste local).
  5. Web.config da web raiz (configuração do servidor)
  6. machine.config da máquina (web.config e machine.config da raiz podem ser encontrados em - raiz do sistema \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.config)

Vá com cuidado por todas essas configurações na ordem de 1 a 6 e você deve encontrá-lo.

Avil Mascarenhas
fonte
4

No meu caso, recebi esse erro porque estava operando no arquivo de configuração errado.

Eu estava fazendo isso:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

em vez do código correto:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

em outras palavras, eu estava tentando operar no web.config do site, em vez do arquivo global C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, que possui uma seção (ou pode ter uma seção) para o site. A configuração que eu estava tentando alterar existe apenas no arquivo applicationHost.config.

Mark R
fonte
4

No meu caso, era outra coisa.

Quando carreguei a solução em uma nova versão do Visual Studio, o VS aparentemente criou um novo arquivo applicationhost.config específico do projeto:

MySolutionDir \ .vs \ config \ applicationhost.config

Começou a usar as configurações da nova configuração, em vez das minhas configurações globais já personalizadas do IIS Express. (\ Users \% USER% \ Documents \ IISExpress \ config \ applicationhost.config)

No meu caso, essa era a configuração que precisava ser definida. Claro que poderia ser outra coisa para você:

<section name="ipSecurity" overrideModeDefault="Allow" />
Andrew
fonte
4

Percebi uma resposta semelhante, mas, no meu caso, usei o Editor configurado do IIS para encontrar a seção que queria "desbloquear".

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Em seguida, copiei o caminho e o usei na minha automação para desbloqueá-lo antes de alterar as seções que desejava editar.

. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/windowsAuthentication
. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/anonymousAuthentication
Brandon Hawbaker
fonte
3

Recebeu o mesmo problema após instalar o IIS 7 no Vista Home Premium. Para corrigir o erro, alterei os seguintes valores, localizados no arquivo applicationHost.config, localizado em Windows \ system32 \ inetsrv.

Altere todos os seguintes valores localizados na seção ->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
Bhavesh
fonte
3

Você pode tentar isso:

Vá para o caminho do aplicativo em que você está recebendo erro de negação, clique com o botão direito

Propriedades-> guia Segurança

Altere as permissões e marque a caixa de seleção ler e escrever. Então ele funcionará sem nenhum erro, esperançosamente.

user5891257
fonte
1

Eu tive um problema em que estava colocando os valores de substituição = "Permitir" (já mencionados aqui) ...... mas em um sistema de x64 bits ....... meu 32 bloco de notas ++ era fantasma salvando-os. Mudar para o Bloco de notas (que é um aplicativo de 64 bits em um sistema operacional x64 bits) me permitiu salvar as configurações.

Vejo :

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

O texto relevante:

Um dos problemas que estou acabando exige que eu visualize e possivelmente edite applicationHost.config. Este arquivo está localizado em% SystemRoot% \ System32 \ inetsrv \ config. Parece bastante simples. Consegui encontrá-lo facilmente na linha de comando, mas quando fui carregá-lo no meu editor favorito (Notepad ++), obtive um erro de arquivo não encontrado. Acontece que a pasta System32 é redirecionada para aplicativos de 32 bits para o SysWOW64. Parece não haver maneira de exibir a pasta System32 usando um aplicativo de 32 bits. Vai saber. Felizmente, as versões de 64 bits do Windows são fornecidas com uma versão de 64 bits do Bloco de Notas. Por mais que eu não goste, pelo menos funciona.

granadaCoder
fonte
1

No meu caso, estava recebendo esse erro ao tentar atualizar as configurações de autenticação no IIS, além de navegar. Consegui remover esse erro removendo a configuração de autenticação do próprio web.config. A remoção de uma seção de configuração problemática pode ser menos invasiva e preferível em alguns casos do que alterar demais as funções e os recursos do servidor:

Seção removida:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>
Brandon Hawbaker
fonte
0

Eu tive o mesmo problema.

  • Resolvido, ativando o recurso Servidor de Aplicativos. Reiniciou o iis depois disso.
Jyo Reddy
fonte
Como ativar o recurso Application Server ? no Windows Server 2008 ou 2012? Windows 7,8,10? usando o PowerShell?
Knicet
0

Isso funcionou para mim Também no IIS 8, você pode resolver esse problema alterando o servidor para o IIS Express. Ir para depuração-> Propriedades Na Web, selecione o servidor como IIS Express na lista suspensa e, em seguida, reconstrua a solução

LahiruD
fonte
0

Para fazer uma alteração no nível do aplicativo (Web.Config):

Remova o nível de confiança do web.config:

Na verdade, eu estava recebendo esse erro quando tentava hospedar meu site no servidor de hospedagem, onde não tenho controle no servidor. A remoção da linha acima do meu aplicativo web.config resolveu meu problema.

Ankit Prajapati
fonte
0

O seguinte funcionou para mim:

Vá para as propriedades do projeto. Guia da Web. Defina como IIS local e defina uma página específica.

Eu tenho o Windows 7 e o Visual Studio 2013.

user3900346
fonte