Errore di configurazione: questa sezione di configurazione non può essere utilizzata in questo percorso


1780

Ho riscontrato un errore durante la distribuzione di un sito su un server. Quando provo a caricare la home page o ad accedere all'autenticazione sul nuovo sito in IIS, viene visualizzato l'errore:

Errore di configurazione: questa sezione di configurazione non può essere utilizzata in questo percorso. Ciò accade quando la sezione è bloccata a livello padre. Il blocco è di default (overrideModeDefault = "Deny") o impostato esplicitamente da un tag di posizione con overrideMode = "Deny" o l'eredità allowOverride = "false".

Maggiori dettagli sono disponibili qui, nello Scenario 7 corrisponde al mio codice di errore esadecimale.

La soluzione fornita sul sito collegato sopra è di impostare Consenti overrideModeDefault nella sezione menzionata nel mio errore, nel file applicationHost.config . Nel mio caso, sotto Sicurezza in system.webServer . Ma se guardo applicationHost.config sul mio computer locale, dove il sito è già correttamente distribuito, quella sezione è impostata su Nega .

Se questa soluzione è corretta, come funziona la mia istanza locale con lo stesso web.config ? Secondo il mio applicationHost.config , quella sezione dovrebbe essere bloccata, ma non lo è. Preferirei non modificare il file applicationHost.config , perché ci sono molti altri siti in esecuzione su quel server. C'è un'altra soluzione?


2
Se sei venuto qui perché hai riscontrato questo errore durante il tentativo di utilizzare il programma "Certify the web" ( certifytheweb.com ), questo articolo del blog potrebbe essere pertinente: renniestechblog.com/information/…
RenniePet

Risposte:


3332

Ho avuto lo stesso problema. Non ricordo dove l'ho trovato sul web, ma ecco cosa ho fatto:

  • Fai clic su "Pulsante Start"
  • nella casella di ricerca, inserisci "Attiva o disattiva le funzionalità di Windows"
  • nella finestra delle funzionalità, fare clic su "Internet Information Services"
  • Fai clic su "Servizi World Wide Web"
  • Fai clic su "Funzionalità di sviluppo dell'applicazione"
  • Controlla (abilita) le funzionalità. Ho controllato tutti tranne CGI.

a proposito, sto usando Windows 7.


84
Costruito un nuovo Windows Server 2012 e abbastanza sicuro, ho dimenticato di aggiungere lo sviluppo di applicazioni in Web Server. Ho controllato tutti tranne CGI, ASP e Server Side Includes, dato che non ho un ASP classico qui.
Chris,

49
Ho controllato le "Funzionalità di sviluppo delle applicazioni", ma in seguito mi sono reso conto che nessuna delle funzionalità in quella cartella era stata effettivamente selezionata per essere abilitata. Ho selezionato manualmente ogni funzione (tranne CGI) per rimuovere l'errore.
Ciaran Gallagher,

30
Confermato per IIS8 anche su Windows 8.
Babak Naffas,

74
Confermato per IIS8.5 per Windows 8.1.
Mike P.

75
Confermato per Windows 10 (IIS 10.0 Build 10240)
sixones

381

È inoltre possibile utilizzare Gestione IIS per modificare tali impostazioni.

Cura di questo articolo Scopri IIS :

Utilizzando la delega delle funzioni dalla radice di IIS:

Icona di delega delle funzioni in Gestione IIS

Puoi quindi controllare ciascuna delle autorizzazioni di lettura / scrittura a livello di macchina, che altrimenti ti daranno gli errori overrideMode = "Nega" .

Esempio di utilizzo della delega delle funzioni


16
Per continuare, ciò che ha funzionato per me è (nota che questa soluzione è sulla mia scatola DEV e NON su un sistema di produzione): -> Ordina per delega -> Trova tutti i tipi di sola lettura -> Impostali su Lettura / Scrittura
Aaron Reed,

1
Ciò ha corretto il messaggio di errore che stavo ricevendo nel gestore IIS7. Più sorprendentemente, è stato anche risolto il problema che i client HTTP 500 stavano ricevendo quando tentavano di accedere al sito Web.
Brian Gideon,

6
Ci sono due soluzioni apparentemente diverse pubblicate qui, entrambe richieste. Innanzitutto, installare le funzionalità di supporto "Application Server" e "Web Server". Il secondo è, controlla le impostazioni della delega e modifica l'impostazione offensiva in Lettura / Scrittura in sola lettura. Importante da notare: la configurazione offensiva potrebbe non essere disponibile nelle funzioni di delega a meno che non siano installate le funzioni di supporto corrette. Nel mio caso, "Autenticazione - Anonimo" era il problema e questa funzionalità di delega non è stata visualizzata fino a quando non ho installato la funzione Server applicazioni.
maplemale,

1
Questo ha funzionato per me. in IIS 8.5, Windows Server 2012 R2
ellickakudy rajeesh,

1
Il problema per me era nella sezione di autenticazione, in IIS 10 in Windows 10. Questo collegamento mi ha aiutato. knowledgebase.progress.com/articles/Article/…
Ajith

185

Per Windows Server 2012 e IIS 8 , la procedura è simile.

L' Web Server (IIS)e Application Serverdovrebbe essere installato e dovresti avere anche l'opzione opzionale Web Server (IIS) Supportsotto Application Server.

Requisiti di Windows Server 2012 e IIS 8 per MVC


30
Per chiarire, la casella di controllo "Supporto server Web (IIS)" non si trova sotto il nodo "Server applicazioni" nella figura sopra. Verrà visualizzato dopo aver eseguito diversi "successivi" e superato i ruoli e le funzionalità del server sulla barra di navigazione a sinistra e si accederà a "Servizi ruolo" (non appare nella foto sopra ma apparirà dopo diversi "successivi"). Questo mi ha fatto impazzire: P
giovedì

2
per me le opzioni sono apparse solo dopo aver aggiunto la regola del server delle applicazioni, quindi ho riavviato la procedura guidata Aggiungi ruoli e funzionalità
wonster,

145

Cerca "C: \ Windows \ System32 \ inetsrv \ config" (qui avrai bisogno dei diritti di amministratore) Apri applicationHost.config

Nota : in IISExpress e Visual Studio 2015 viene archiviato applicationHost.config$(solutionDir).vs\config\applicationhost.config

Trova la sezione visualizzata nella parte "fonte di configurazione" della pagina del messaggio di errore. Per me questo è stato in genere "moduli" o "gestori"

Cambia l' overrideModeDefaultattributo in modo che siaAllow

Quindi l'intera riga ora appare come:

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

Dopo aver salvato il file, la pagina è stata caricata correttamente nel mio browser.

Avvertenza: modifica di applicationHost.config su Windows a 64 bit


2
Link per 64 bit è 404, peccato che non hai incluso le informazioni utili direttamente nella tua risposta.
Erik Philips

1
Questo è stato per me su ipSecurity in ambiente di sviluppo Windows 8.1, +1.
Moby Stunt Double,

Per Windows a 64 bit, è necessario passare a notepad.exe e aprire% SystemRoot% \ System32 \ inetsrv \ config per ottenere la copia corretta del file
Eddie Fletcher

Mi è successo durante il debug in locale in Visual Studio 2017, all'interno della sezione "autenticazione". Salvavita!
Vale a dire il

69

Devi sbloccare i gestori. Questo può essere fatto usando il seguente comando cmd:

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

Forse un'altra informazione per le persone che ottengono questo errore su IIS 8, nel mio caso era sulla piattaforma Microsoft Server 2012. Ho trascorso un paio d'ore a combattere con altri errori che si sono propagati dopo aver eseguito appcmd. Alla fine sono stato in grado di risolverlo rimuovendo il ruolo del server Web e installandolo di nuovo.


questo ha funzionato anche per me per system.webServer / security / ipSecurity
Bart Calixto

3
Bingo. Ho dovuto correre come amministratore.
JackMorrissey,

3
Ho dovuto farlo anche per -section: system.webServer / modules.
Mike,

1
ha funzionato per me - Stavo cercando di impostare /section:access /sslFlags:SslNegotiateCerte ho scoperto che dovevo usare quanto sopra con -section:access cui riportato comeUnlocked section "system.webServer/security/access"...
Shaun Wilde,

1
Ha funzionato per me su Windows Server 2012 R2
Robben_Ford_Fan_boy

50

1. Apri " Attiva o disattiva le funzionalità di Windows " tramite: WinKey + R => "optionalfeatures" => OK

inserisci qui la descrizione dell'immagine

  1. Abilita quelle funzionalità in " Funzionalità di sviluppo dell'applicazione"

inserisci qui la descrizione dell'immagine

Testato su Win 10 - Ma probabilmente funzionerà anche su altre versioni di Windows.


2
Perfetto. Ho solo bisogno di selezionare la casella ASP.NET 4.7 e ha selezionato automaticamente tutti gli altri requisiti necessari. Ha funzionato come un fascino senza nemmeno riavviare il sito Web.
Bill Tarbell,

Per noi sostenitori di IIS, verificare che la versione corretta di asp.net sia effettivamente installata dovrebbe essere il primo passo.
mrfelis,

1
compagno eccellente: D
Fabio Silva Lima,

38

Ho eseguito questi due comandi da un prompt dei comandi con privilegi elevati:

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

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

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
Rook,

19
@Rook questa è una risposta perfettamente valida perché non promuove ciecamente l'abilitazione delle funzionalità di sviluppo dell'applicazione sul server; indica una soluzione controllata per un particolare scenario di ottenere questo errore. Avrebbe potuto essere formulato meglio. Un buon lavoro per aumentare la fiducia del nuovo ragazzo: non è mai tornato dopo che tu e NAZIK avete supposto tutto il suo primo tentativo di entrare a far parte della comunità.
Qujck,

1
Questo risolto il mio problema con un'applicazione che aveva una configurazione a livello di applicazione dell'autenticazione di Windows.
Nebffa,

Bene, questo ha fatto il trucco in cui le funzionalità di sviluppo delle applicazioni non lo hanno fatto
Stephen Holt,

1
Funziona per me, ma perché?
Kevman,

37

Secondo la mia risposta a questo problema simile ;

Prova a sbloccare le impostazioni di configurazione IIS pertinenti a livello di server, come indicato di seguito:

  1. Apri Gestione IIS
  2. Seleziona il server nel riquadro Connessioni
  3. Apri Configuration Editor nel riquadro principale
  4. Nel menu a discesa Sezioni, seleziona la sezione da sbloccare, ad esempio system.webServer> defaultPath
  5. Fai clic su Sblocca attributo nel riquadro a destra
  6. Ripetere l'operazione per tutte le altre impostazioni che è necessario sbloccare
  7. Riavvia IIS (opzionale): selezionare il server nel riquadro Connessioni, fare clic su Riavvia nel riquadro Azioni

1
Questa soluzione ha funzionato per me, ma il vero motivo era diverso: ho dovuto installare ASP.NET 4.5 (Add-WindowsFeature Web-Asp-Net45).
Der_Meister,


26

L'opzione migliore è cambiare Application Settingsda Custom Site Delegation
Apri IISe dalla radice selezionare Feature Delegatione quindi selezionare Application Settingse dalla barra laterale destra selezionareRead/Write Passo 1 Passo 2


Il mio gestore IIS non ha molte di queste funzionalità. Penso di doverle aggiungere tramite le funzionalità di Windows. Li ho selezionati tutti (riquadro quadrato nero) ma quando faccio clic su di essa nessuna delle opzioni è stata selezionata! Non l'ho mai visto usando tutti i sistemi operativi Windows. Peccato per te Microsoft! Ho perso un sacco di tempo. ASSICURATI CHE TUTTE LE CARATTERISTICHE DI WINDOWS siano verificate e desiderate ... NON UTILIZZARE LA SELEZIONE SQUARE NERA
yardpenalty.com

3
Oppure capisci cosa significa "quadrato nero" quando installi software sul tuo server.
LarryBud,

1
Posso aggiungere il passaggio 2.1 -> fare clic su "delega del sito personalizzata" sulla destra, quindi scegliere quale sito si desidera consentire la sostituzione dal menu a discesa in alto. Suggerisco di non consentire la sovrascrittura su tutti i siti, ma solo il sito che è necessario. Quindi, continua con il passaggio 3.
foxontherock,

26

Questo ha fatto il trucco per me, per IIS 8 Windows Server 2012 R2

Vai a "Attiva funzionalità"

Quindi vai a tutte le impostazioni predefinite, Avanti, Avanti, Avanti ecc.

Quindi, selezionare come mostrato di seguito, inserisci qui la descrizione dell'immagine

Quindi ripristinare IIS (opzionale) ma farlo in modo più sicuro.

inserisci qui la descrizione dell'immagine

Questa è una soluzione aggiuntiva in quanto è un problema generico, ognuno ha problemi diversi e quindi una soluzione diversa. Saluti!


1
questo funziona anche su Windows Server 2016
M. Schena

1
Questo funziona per me
aronccs il

Lavora alla perfezione su Windows Server 2016!
D Todorov,

17

Per risolvere questo problema, aprire IIS Express applicationhost.config. Questo file è archiviato in C: \ Users [nome utente] \ Documents \ IISExpress \ config \ applicationhost.config

Aggiornamento per VS2015 +: il percorso del file di configurazione è $ (solutionDir) .vs \ config \ applicationhost.config

Cerca le seguenti righe

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

Cambia quelle righe in

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

Salvalo e aggiorna la pagina Asp.net.


15

Nel nostro caso su IIS 8 abbiamo riscontrato che l'errore è stato prodotto quando si è tentato di visualizzare l'autenticazione "per un sito, quando:

  1. Delega funzionalità server contrassegnata come "Autenticazione - Windows" = "Sola lettura"
  2. Il sito aveva un web.config che faceva esplicitamente riferimento all'autenticazione di Windows; per esempio,

Contrassegnando la delega delle funzionalità del sito "Autenticazione - Windows" = "Lettura / Scrittura", l'errore è scomparso. Sembra che, con la funzione contrassegnata come "Sola lettura", web.config non sia autorizzato a fare riferimento a esso nemmeno per disabilitarlo, poiché apparentemente costituisce una scrittura.

sito web.config Gestione IIS - Delega funzionalità server


13

Sembra che con IIS Express e VS 2015, esiste una copia del file applicationHost.config in $ (solutionDir) .vs \ config \ applicationhost.config, quindi è necessario apportare modifiche lì. Vedi questo link: http://digitaldrummerj.me/iis-express-windows-authentication/

Assicurati che queste linee siano cambiate come di seguito:

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

12

Nel mio caso è stato che sul server non è stata abilitata "Attivazione HTTP" in Funzionalità .NET Framework. Quindi per Windows Server 2012 la soluzione che ha funzionato per me è stata:

Server Manager -> Aggiungi ruoli e funzionalità -> Funzionalità -> assicurati che in .NET Framework della versione che desideri utilizzare sia selezionato "Attivazione HTTP"


non ha funzionato @Ray in Windows 7, 8, 10, 2008 server, 2012 server?
Kiquenet,

9

Il modo Powershell per abilitare le funzionalità (Windows Server 2012 +) - tagliare secondo necessità:

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

6

Ho dovuto modificare le impostazioni SSL in una sottocartella quando ho ricevuto questo bel messaggio. Nel mio caso la seguente azione mi ha aiutato.

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

E modificato il valore da overrideModeDefault = "Nega" in "Consenti"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>

6

L'errore indica che la sezione di configurazione è bloccata a livello padre. Quindi non sarà direttamente 1 file di configurazione che risolverà il problema, abbiamo bisogno di passare attraverso la gerarchia dei file di configurazione per vedere l'ereditarietà Controlla il link sottostante per passare attraverso la gerarchia dei file e l'ereditarietà in IIS

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

Quindi è necessario verificare le impostazioni di configurazione dell'app nell'ordine seguente

  1. ApplicationHost.config in C: windows \ system32 \ inetsrv \ config. Modificare l'attributo overrideModeDefault in Consenti.
  2. ApplicationName.config o web.config nella directory delle applicazioni
  3. Web.config nella directory principale.
  4. Web.config nel sito Web specifico (il mio problema è stato trovato in questo luogo).
  5. Web.config del root web (configurazione del server)
  6. machine.config della macchina (web.config e machine.config di Root sono disponibili in - systemroot \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.config)

Segui attentamente tutte queste configurazioni nell'ordine da 1 a 6 e dovresti trovarlo.


4

Nel mio caso, ho riscontrato questo errore perché stavo operando sul file di configurazione errato.

Stavo facendo questo:

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

invece del codice corretto:

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

in altre parole, stavo cercando di operare sul web.config del sito Web anziché sul file globale C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, che ha una sezione (o può avere una sezione) per il sito Web. L'impostazione che stavo cercando di modificare esiste solo nel file applicationHost.config.


4

Nel mio caso, era qualcos'altro.

Quando ho caricato la soluzione in una nuova versione di Visual Studio, VS apparentemente ha creato un nuovo file applicationhost.config specifico del progetto:

MySolutionDir \ .VS \ config \ applicationhost.config

Ha iniziato a utilizzare le impostazioni della nuova configurazione, anziché le mie impostazioni IIS Express globali già personalizzate. (\% USER Users \% \ Documents \ IISExpress \ config \ applicationHost.config)

Nel mio caso questa era l'impostazione che doveva essere impostata. Certo, potrebbe essere qualcos'altro per te:

<section name="ipSecurity" overrideModeDefault="Allow" />

4

Ho notato una risposta simile, ma nel mio caso ho usato l'Editor configurato IIS per trovare la sezione che volevo "sbloccare".

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Quindi ho copiato il percorso e l'ho usato nella mia automazione per sbloccarlo prima di cambiare le sezioni che volevo modificare.

. "$($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

3

Ricevuto lo stesso problema dopo aver installato IIS 7 su Vista Home Premium. Per correggere l'errore ho modificato i seguenti valori che si trovano nel file applicationHost.config che si trova in Windows \ system32 \ inetsrv.

Modifica tutti i seguenti valori nella sezione ->

<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>

3

Puoi provare questo:

Vai al percorso dell'applicazione in cui ricevi l'errore di rifiuto, fai clic con il pulsante destro del mouse

Proprietà-> scheda Sicurezza

In questo, cambia i permessi e seleziona la casella di lettura e scrivi. Quindi funzionerà senza errori speriamo.



1

Ho avuto un problema in cui inserivo i valori override = "Allow" (già menzionati qui) ...... ma su un sistema x64 bit ....... il mio 32 notepad ++ li stava salvando. Passare al Blocco note (che è un'applicazione a 64 bit su un O / S a 64 bit) mi ha permesso di salvare le impostazioni.

Vedi:

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

Il testo pertinente:

Uno dei problemi che sto esaurendo ha richiesto la visualizzazione e la modifica di applicationHost.config. Questo file si trova in% SystemRoot% \ System32 \ inetsrv \ config. Sembra abbastanza semplice. Sono stato in grado di trovarlo facilmente dalla riga di comando, ma quando sono andato a caricarlo nel mio editor preferito (Notepad ++) ho ricevuto un errore di file non trovato. Si scopre che la cartella System32 viene reindirizzata per le applicazioni a 32 bit a SysWOW64. Sembra che non ci sia modo di visualizzare la cartella System32 utilizzando un'app a 32 bit. Vai a capire. Fortunatamente, le versioni a 64 bit di Windows vengono fornite con una versione a 64 bit di Blocco note. Per quanto non mi piaccia, almeno funziona.


1

Nel mio caso ho riscontrato questo errore durante il tentativo di aggiornare le impostazioni di autenticazione in IIS, oltre alla navigazione. Sono stato in grado di rimuovere questo errore rimuovendo l'impostazione di autenticazione dal web.config stesso. La rimozione di una sezione di configurazione problematica può essere meno invasiva e preferibile in alcuni casi rispetto alla modifica eccessiva dei ruoli e delle funzionalità del server:

Sezione rimossa:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>

0

Ho avuto lo stesso problema.

  • Risolto abilitando la funzione Server applicazioni. Riavviato dopo questo.

Come abilitare la funzione Application Server ? in Windows Server 2008 o 2012? Windows 7,8,10? usando Powershell?
Kiquenet,

0

Questo ha funzionato per me Anche in IIS 8 è possibile risolvere questo problema cambiando il server in IIS Express. Vai a debug-> Proprietà Nel Web selezionare il server come IIS Express dal menu a discesa e quindi ricostruire la soluzione


0

Per apportare una modifica a livello di applicazione (Web.Config):

Rimuovere il livello di affidabilità da web.config:

In realtà stavo ricevendo questo errore quando stavo cercando di ospitare il mio sito Web sul server di hosting dove non ho il controllo sul loro server. La rimozione della riga precedente dalla mia applicazione web.config ha risolto il mio problema.


0

Per me ha funzionato:

Vai alle proprietà del progetto. Scheda Web. Impostare su IIS locale e impostare una pagina specifica.

Ho Windows 7 e Visual Studio 2013.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.