Impossibile accedere alla pagina richiesta perché i dati di configurazione relativi alla pagina non sono validi


480

Voglio caricare il mio sito Web asp.net su IIS con IIS Manager. Ma quando lo faccio, ricevo il seguente errore

Errore HTTP 500.19 - Errore interno del server Impossibile accedere alla pagina richiesta perché i dati di configurazione correlati per la pagina non sono validi

Modulo IIS
Notifica Web Core
Gestore sconosciuto non ancora determinato
Codice di errore 0x80070005
Errore di configurazione Impossibile leggere il file di configurazione a causa di autorizzazioni insufficienti
File di configurazione \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

Ho cercato molte volte una soluzione per questo errore, ma nessuna delle soluzioni ha risolto l'errore.

Ho un problema con il mio IUSRaccount. Non riesco a vedere questo account nel "gruppo o nomi utente" nelle proprietà di web.config.

Qual è il problema?


3
Ho avuto questo problema dopo aver ripristinato alcune modifiche tramite Subversion (anche se potrebbe essere una coincidenza). Ho notato che gli Web.configACL del file erano diversi dagli altri file nella directory e che non ereditava dal suo genitore . Ho abilitato l'ereditarietà ACL e tutto è tornato alla normalità.
ta.speot.è il

1
La mia soluzione era leggermente diversa. Su alcune macchine Windows Server 2008, è necessario consentire l'accesso al gruppo "IIS_IUSRS", non all'utente "IUSR", all'interno delle autorizzazioni di sicurezza della cartella del sito. Assicurati di andare nella posizione della tua macchina.
MacGyver

7
Ho avuto questo problema spostando un sito su un server su cui non era installato il modulo IIS Url Rewrite.
ScottE,

1
Questo può accadere SE hai rinominato il tuo server. L'ho fatto da solo - e alla fine ho dovuto semplicemente entrare (Windows Server 2012 R2) e aggiungere nuovamente IIS APPPOOL \ SiteName ... e il 100% ha risolto questo problema.
Michael K. Campbell,

2
se non conosci la distribuzione di app ASP.NET Core sul tuo vecchio server 2008 R2, devi installare il bundle di hosting .NET Server Windows Server Core - come ho appreso da questa risposta
bkwdesign

Risposte:


178

Il messaggio dice che il tuo file di configurazione è in qualche modo corrotto. Tuttavia, dice anche che non può effettivamente accedere al file di configurazione. Quindi ignorerei il messaggio originale sulla corruzione / mancanza di validità in quanto questo è molto probabilmente solo l'effetto di non poter leggere il file a causa della mancanza di autorizzazione.

Il motivo per cui non è in grado di leggere il file di configurazione è perché il processo che esegue l'app Web non dispone dell'autorizzazione per accedere al file / alla directory. Quindi è necessario assegnare tali autorizzazioni al processo che esegue l'app Web.

I diritti di accesso dovrebbero essere abbastanza semplici, ovvero almeno Leggi e, a seconda della tua app, forse Scrivi .

Sopra, menzioni IUSR ecc. Non essere nelle proprietà di web.config. Se con ciò intendi che IUSR non è elencato nella scheda di sicurezza del file, allora è una buona cosa. Uno non vuole dare a IUSR alcun tipo di permesso a web.config . Il ruolo IUSR è un utente Internet anonimo.

Il file web.config dovrebbe essere accessibile solo tramite l'applicazione.

Il problema è che non hai detto quale versione del sistema operativo e IIS stai utilizzando, quindi è difficile consigliare quali passaggi adottare.

Vale a dire in IIS 7.5, è probabile che si verifichi il messaggio di errore che stai citando a causa del fatto che ApplicationPoolIdentity non ha ricevuto le autorizzazioni. L'applicazione Web appartiene a un pool di applicazioni e pertanto è necessario concedere le autorizzazioni all'account del sistema operativo in cui viene eseguito il pool di applicazioni dell'applicazione Web. Spesso questo è qualcosa come NetworkService ma potresti averlo personalizzato per essere eseguito con un account appositamente creato. Senza ulteriori informazioni è difficile aiutarti.


3
Posso dare questa autorizzazione a livello di codice? Per favore aiuto. Sto riscontrando lo stesso problema.
pcbabu,

1
Grazie anche a questo ho risolto il mio problema. Sto usando la rappresentazione che apparentemente rende necessario assegnare le autorizzazioni READ alla directory dell'applicazione per l'account rappresentato.
Cesar,

2
Continuo a ricevere "Impossibile enumerare gli oggetti nel contenitore. Accesso negato." dopo che do il permesso
RollRoll

4
Fare clic con il tasto destro del mouse sulla cartella a cui è necessario autorizzare la sicurezza. Questa è la cartella principale in cui viene pubblicata l'applicazione ed è la stessa cartella del percorso fisico del sito Web IIS. Scegli le proprietà dal menu contestuale e fai clic sulla scheda Sicurezza. Modifica utenti, quindi Aggiungi un utente. Fai clic sul pulsante Posizioni e scegli l'icona in alto (simile a Risorse del computer). Nell'area di testo, immettere IIS_IUSRS. Premere più volte OK fino alla chiusura di tutti i menu di scelta rapida. Riavvia il tuo sito web e naviga nuovamente su di esso.
Jeremy Ray Brown,

Se non vuoi capire i permessi sul percorso fisico per il sito web, dai a tutti il ​​permesso! Questo è un trucco rapido e non raccomandato per tutti gli accessi fisici a file / cartelle.
Jeremy Ray Brown,

662

Ciò può accadere anche se il sito è configurato per utilizzare il modulo di riscrittura URL IIS ma non è installato.


Questo è stato per me .. ho rimosso la sezione di riscrittura (che non era davvero necessaria in ogni caso) e tutto va bene.
Andrew Patterson,

129
Ben fatto. <rant> Sarebbe bello se IIS lanciasse un errore "Non capisco cosa sia <rewrite>", piuttosto che lamentarsi di XML non valido. </rant>
Evan Haas,

7
Grazie mille - anche questo era il mio problema. Il modulo di riscrittura è in uso se vedi il tag <rewrite>. Si potrebbe pensare che IIS possa dirti ciò che non può essere analizzato.
scolestock

6
Bel modo semplice per risolvere la dipendenza mancante dalla riga di comando; webpicmd / Installa / Prodotti: UrlRewrite2
cirrus

2
Vorrei solo notare che se il tuo web.config include un tag <rewrite>, allora hai bisogno del modulo di riscrittura.
Jono,

437

Alla fine ho ottenuto la soluzione al mio problema. L'account ASP.net non è stato visualizzato nel gestore IIS, perché non ho selezionato la casella di controllo in IIS. Per fare ciò in Windows 7 segui i passaggi:

  1. Apri il pannello di controllo
  2. Fare clic sul collegamento "programma" (non disinstallare i programmi)
  3. Fai clic sul link "attiva / disattiva funzionalità di Windows"
  4. Individua "Internet Information Services IIS" nella finestra pop-up ed espandi il suo nodo
  5. Espandere il nodo "World Wide Web Service"
  6. Espandere il nodo "Funzionalità di sviluppo dell'applicazione"
  7. Seleziona la casella di controllo di "ASP.NET"
  8. Quindi fare clic sul pulsante OK

Ora vedrai l'account ASP.net sul gestore IIS e per impostazione predefinita vedrai l'account IIS. Ora, dovresti spostare il tuo sito Web ASP.net dal "mio documento" in un altro posto in cui IIS ha il permesso di accedervi (cioè in un'altra partizione sul tuo computer). Ora, sfoglia il tuo sito Web dal gestore IIS e dovrebbe funzionare.

Grazie mille per Jeff Turner per la soluzione.


Qualcuno deve aver rimosso questo servizio ruolo da un server in esecuzione da mesi. Non avrei mai immaginato di ricontrollarlo. Ugh.
SixOThree

Ancora più semplice, usando la riga di comando:dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
i3arnon,

1
Grazie ... come possono rilasciare un prodotto con un livello così basso di messaggi di errore?
Vland,

La mia sezione <handlers> aveva un riferimento a WebDAV e una volta aggiunta la funzionalità WebDAV a IIS ha funzionato.
Andy Roberts,


47

Avevo lo stesso problema, ecco la soluzione che ha funzionato per me.

  1. Manager IIS
  2. Fare clic con il tasto destro su quel sito Web
  3. Modifica autorizzazioni
  4. Aggiunto l'utente "IIS_IUSRS" dalla scheda Sicurezza
  5. Ha ottenuto le autorizzazioni complete per l'utente "IIS_IUSRS"
  6. Impostare l'identità del pool di applicazioni su "ApplicationPoolIdentity"

2
Non lo consiglierei a scopi di produzione. Credo che IIS_IUSRS sia un account anonimo e gli daresti pieno accesso all'intera struttura di directory del sito web
Jacques,

Ho anche salvato la mia giornata, dato che ho capito che il permesso è anche il colpevole, ho usato un'altra identità di apppool e ha funzionato!
Vicino al

39

Per gli sviluppatori di Visual Studio (VS): come suggerito da Harvey Darvey, Savage e Snives, la configurazione dell'host dell'applicazione potrebbe indicare il percorso fisico dell'applicazione errato. Cerca virtualDirectory all'interno /.vs/config/applicationhost.config per cambiare il physicalPath se non è corretto.

inserisci qui la descrizione dell'immagine

Assicurati che physicalPath sia corretto:

inserisci qui la descrizione dell'immagine


3
Puoi anche fare esattamente la stessa cosa in project => properties => project url => crea una directory virtuale, scegli sì per rimappare al percorso fisico corretto quando richiesto
Adam Diament

Nel mio caso è stato un po 'diverso ma ha dato la mia direzione, grazie mille, mi ha aiutato molto :)
Bharat,

24

Avviso Facepalm:

Riceverai anche questo errore se il percorso del file di configurazione è errato. Ricontrollalo per assicurarti che il percorso fisico sia inserito correttamente in IIS.


Come variante di questo, risulta che ho impostato il percorso in modo errato sul sito stesso. Ho attraversato accidentalmente la condivisione di rete mappata anziché il percorso del file di sistema locale.
David,

2
Ha avuto lo stesso momento faccia-palmo. Ho spostato il mio sito Web in una sottocartella e ho pensato di aver digitato correttamente il nuovo percorso in IIS. Sembrava che il sito avesse ancora tutte le cartelle richieste ecc. Al di sotto che mostrava nella struttura in IIS, quindi non ha innescato questo come motivo. Ho ripristinato le autorizzazioni, ecc., Non l'ho risolto. Quindi, parlando del problema, mi è stato suggerito di passaggio ... e ora ho di nuovo un sito di lavoro dopo 1 ora di spreco!
Ladygargar,

Dov'è impostato questo percorso? Questo sembra essere il mio problema, ma non riesco a trovare quello che devo cambiare
Drew Rochon,

In ambiente di sviluppo: .vs> config> applicationhost.config Questo è ciò che accade quando non si ha un GIT ignorato sul file e gli sviluppatori iniziano a controllarlo.
Savage

Ho avuto una barra "\" in più nel mio percorso fisico - shesh. Grazie per questo
J King

18

È necessario assegnare autorizzazioni per IIS_IUSRS sul computer locale (ma non è necessario assegnare per IUSR, infatti funzionerà anche se si negano esplicitamente le autorizzazioni).

Per assegnare le autorizzazioni, basta fare clic con il tasto destro sulla cartella e sulla scheda di sicurezza assicurarsi di concedere le autorizzazioni corrette e, se l'utente non è elencato, fare clic su "AGGIUNGI" e inserire IIS_IUSRS (e assicurarsi che sotto "dominio" il locale il computer è selezionato, oppure inserisci nel campo nome YourLocalComputerName \ IIS_IUSRS) e sei a posto.

Se lo desideri, invece di assegnare le autorizzazioni al gruppo IIS_IUSRS, puoi invece assegnare al pool di app che dovrebbe essere in genere "APPPOOL IIS \ nome pool di app ".


Dal seguente sito Web: iis.net/learn/get-started/planning-for-security/… Il gruppo IIS_IUSRS sostituisce il gruppo IIS_WPG. Questo gruppo integrato ha accesso a tutti i file e alle risorse di sistema necessari in modo che un account, se aggiunto a questo gruppo, possa agire senza soluzione di continuità come identità del pool di applicazioni.
Jeremy Ray Brown,

Accesso ancora negato.
GreySage,

15

Solo per il chip in, ho ricevuto lo stesso tipo di errore e il mio problema era abbastanza semplice: mi mancava il .NET Core Hosting Bundle. Dopo aver installato lo strumento e riavviato il server, è andato tutto bene.

Puoi trovare il manuale per ospitare il core asp.net su Windows qui: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2


La semplice installazione di .NET Core SDK non è sufficiente per eseguire i siti Web ASP.NET Core in IIS. Ho trascorso diverse ore a
risolvere

Potrebbe non essere sufficiente, ma risolve questo errore. Ha funzionato per me. Avevo supposto che tutti i componenti .NET fossero già inclusi.
pcalkin

Sì, ho
Kirk Woll,

Ok, il pacchetto "autonomo" non è all'altezza del suo titolo.
SLCH000,

11

La stessa cosa è successa con me, prova a verificarlo facendo doppio clic sulle stringhe Connessione nel riquadro destro di IIS 7 quando selezioni un sito Web.

Ti darà un errore (che c'è qualche problema con il file di configurazione web), perché hai usato le regole di riscrittura degli URL e il rispettivo componente non è installato.

Installa "Microsoft URL Rewrite Module 2.0 per IIS 7" e questo dovrebbe risolvere il tuo problema


9

Niente qui ha funzionato per me, ho trovato questo comando in un'altra risposta SO e ho risolto il mio problema. Basta avviare il prompt dei comandi come amministratore ed eseguire questo comando:

run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"

Credito: utente Vicxx


Per correggere il mio ambiente di sviluppo vs 2017 ho dovuto rimuovere IIS dalle funzionalità di Windows 7. Aggiungilo di nuovo, aggiorna e installa tutto il necessario. Il passaggio finale è stato l'esecuzione dei regiis con il prompt dei comandi di Visual Studio 2017. Ora funziona di nuovo, 8 ore di tempo impiegate per risolvere questo problema. uck ..
Warren LaFrance,

7

Faccio questi passaggi per risolvere questo problema in Windows Server 2012, IIS 8.5. Dovrebbe funzionare anche per altre versioni.

  1. Vai a server manager, fai clic su aggiungi ruoli e funzionalità
  2. Nella sezione ruoli selezionare: Web Server
  3. Nella sottosezione Sicurezza scegli tutto (ho escluso digest, restrizioni IP e autorizzazione URL poiché non li usiamo)
  4. Sotto lo sviluppo di applicazioni scegliere .NET Extensibility 4.5, ASP.NET 4.5ed entrambe le ISAPIvoci
  5. Nella sezione caratteristiche scegliere: NET 3.5, .NET 4.5,ASP.NET 4.5
  6. Nella sezione server Web scegliere: Web Server(tutti), Management Tools(Console di gestione IIS e servizio di gestione), Windows

6

Un'altra possibilità che ha risolto questo problema per me:

IIS -> Modifica autorizzazioni -> Scheda Sicurezza -> Assegna agli utenti le autorizzazioni appropriate (o IIS_IUSRS, a seconda della configurazione)


6

Ehm. Avevo spostato il mio sito / i miei file in un'altra cartella. Senza cambiare il percorso nel sito Web IIS.

Potresti ridere tutti ora.


6

Assicurarsi che il pool di applicazioni sia impostato sulla versione corretta del framework. Dovrai anche assicurarti che i tuoi utenti aspnet, IIS_IUSRS o IUSR abbiano accesso in lettura alla directory dell'applicazione.


Come posso fare questo?? "assicurati che i tuoi utenti aspnet o IUSR abbiano accesso in lettura alla directory dell'applicazione"
Yasmeen

5
andare su C: \ Users \ Yasso \ Documents \ Visual Studio 2008 \ WebSites \ WebSite5 \ e assicurarsi che la directory WebSite5 disponga delle autorizzazioni di lettura per il gruppo IUSR e IIS_IUSRS. Puoi farlo facendo clic con il tasto destro sulla directory e selezionando Proprietà, quindi andando alla scheda Sicurezza.
Jeff Turner,

Ma non vedo il gruppo IUSR e IIS_IUSRS nel gruppo o nel nome utente !! non so quale sia il problema ??
Yasmeen,

1
vedi un'opzione per il servizio di rete? per impostazione predefinita è quello che verrà utilizzato dal pool di applicazioni quando si lavora sul desktop (se ricordo bene)
Jeff Turner,

1
quando vai alla scheda sicurezza, dopo aver fatto clic con il pulsante destro del mouse sulla cartella e selezionato le proprietà. Fai clic sul pulsante "Aggiungi", che dovrebbe generare un'altra finestra con un pulsante "Modifica". Fai clic sul pulsante "Modifica" e digita "Servizio di rete" nella casella di testo. Dovrebbe trovare l'utente e aggiungerlo all'elenco. Quindi assicurati che l'utente abbia almeno i privilegi di lettura.
Jeff Turner,


4

Questo è successo anche a me quando avevo un documento predefinito con lo stesso nome (come index.aspx) specificato sia nel mio file web.config che nel mio sito Web IIS. Ho finito per rimuovere la voce dal sito Web IIS e ho mantenuto la voce web.config come di seguito:

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

4

A volte in questo messaggio possono mancare componenti nel proprio ambiente IIS, ad esempio un particolare framework o una funzionalità IIS come la compressione dinamica, piuttosto che le autorizzazioni per web.config.

In questo caso, una soluzione può essere quella di installare e utilizzare Microsoft Platform Installer e installare quei componenti mancanti: potrebbe essere necessario prendere una decisione su ciò che manca esattamente perché il registro degli errori e il messaggio non lo dicono.


NB: la compressione dinamica si trova nell'elenco delle "caratteristiche di Windows" e non in MPI
Simon_Weaver

@Simon_Weaver in realtà la compressione dinamica è nell'elenco delle cose che MPI installerà per te ed è stato dal 2012, forse anche prima di allora. Saluti.
eagle779,

4

Prova a installare il componente secondario "Sviluppo applicazioni" di IIS come indicato in questo SO

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

inserisci qui la descrizione dell'immagine


3

È necessario impostare l'autorizzazione per la cartella del sito Web o copiarli nella cartella wwwroot :) - Se si imposta l'autorizzazione, disporre di 2 modalità: + Fare clic con il pulsante destro del mouse sulla cartella del sito Web + oppure fare clic con il pulsante destro del mouse sul sito Web in IIS => selezionare Modifica autorizzazione e Aggiungi un permesso (IUSR - utente predefinito di iis) Buona fortuna ;-)


Nel mio caso, ovvero 8, erano utenti autenticati.
il rampollo

3

Nel mio caso, causato dal percorso fisico dell'applicazione punta a una cartella inesistente in IIS.

screenshot delle impostazioni dell'applicazione


3

Ho avuto il problema come ho copiato il mio file web.config giù da pungolo, ha cambiato tutto ciò che non prod legati ad eccezione delle regole di riscrittura che sono state riscrivendo a http S .

Rimosse quelle regole e funzionava bene.


2

Abbastanza semplice, IIS non ha accesso al tuo web.config. Inizierei togliendo il sito dalla cartella dei documenti. Verifica che abbia anche le autorizzazioni di r / w.


Sposto il sito da Document a un altro posto ma appare lo stesso errore
Yasmeen

2

Anch'io ho avuto il problema simile e l'ho risolto commentando alcune sezioni nel file web.config.

Il progetto è stato precedentemente creato e distribuito in .Net 2.0. Dopo la migrazione a .Net 3.5, ha iniziato a generare l'eccezione.

risoluzioni:

Se il file di configurazione contiene "< sectionGroup name =" system.web.extensions > ", commentalo ed eseguilo poiché questa sezione è già disponibile in Machine.config.


2

Puoi ottenere questo errore se hai un errore synax o un problema nel tuo file web.config.

Per me, era una e commerciale vagante in un URL che stavo usando in AppSettings.


Ho anche ottenuto questo con una password in una stringa di connessione che aveva un & - codificandolo in & amp; mi ha fatto superare questo problema. Grazie, questa è l'unica risposta qui non relativa alle autorizzazioni.
Jeremy Thompson,

2

Nella pagina di errore IIS 7.5, fai clic su "Visualizza ulteriori informazioni" nella parte inferiore della pagina e in questo caso ti porterà al seguente collegamento Microsoft:

http://support.microsoft.com/kb/942055

Lo 0x80070005 Il codice di errore sembra essere legato alle autorizzazioni e seguendo i passaggi della risoluzione 2, il metodo 2 che assegna gli account corretti con le autorizzazioni alle cartelle pertinenti dovrebbe risolverlo: ho trascorso 3 giorni alla ricerca di una soluzione fino a quando non l'ho trovata, ha funzionato subito.


2

ha riscontrato questo problema con le unità mappate, IIS non funziona con le unità mappate. Usa semplicemente l'unità non mappata.


2

Esplora la cartella in cui è memorizzato il tuo sito Web e vedrai che otterrai una cartella aggiuntiva "aspnet_client" eliminala e funzionerà per te.

Ho provato a risolvere il mio problema.

Se funziona per te, falla come risposta in modo che anche qualcun altro possa ottenere una soluzione.


1

Niente di tutto questo ha funzionato per me, ma finalmente ho una soluzione che ha funzionato per me:

rimuovere questa riga in web.config:

<compilation debug="true" targetFramework="4.5"/>

non rimuovere questa riga

<compilation debug="true"/>

1

Aggiungi l'account locale IIS_IUSRS alla sicurezza e esegui l'accesso in lettura / esecuzione. funziona sul mio caso.

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.