2012-06-22 5 views
58

Presumo che si tratti di un errore IIS, poiché ciò non si verifica se eseguo il progetto sul mio computer locale."401 Non autorizzato" su una directory

ho i miei fogli di stile a ~/Content/css

Tutti i file in quella cartella non verrà caricato sulla pagina, e quando ci si dirige a loro direttamente, ottengo un errore del server:

401 - Unauthorized: Access is denied due to invalid credentials.

You do not have permission to view this directory or page using the credentials that you supplied.

Questo solo succede con quella directory, non ho problemi ad accedere ad altri file. C'è qualcosa che devo fare in IIS7 per fermare questo?

risposta

34

E 'probabile che non si ha il IUSR_ nomecomputer autorizzazione per quella cartella. Ho appena fatto una scansione veloce e sembra che tu sia find the information you need here.

In caso contrario, viene richiesto il nome utente e la password dal browser? In tal caso, è possibile che IIS sia configurato per utilizzare solo l'autenticazione integrata, as described here.

+2

Se si sta utilizzando un pool di applicazioni per gestire l'accesso al sistema db/file, non eseguire questa operazione. Continua a leggere per vedere la risposta di imanabidi qui sotto. –

+0

grazie, nel mio caso ho appena aggiunto tutti con il controllo completo –

+0

http://support.microsoft.com/kb/313075 - Questa pagina non esiste più. @ m.edmondson – Divya

2

È necessario controllare le autorizzazioni della cartella sul server e controllare che l'account che si sta utilizzando per eseguire l'applicazione abbia accesso a tale cartella.

-3

Un'altra semplice soluzione che ho trovato è stata quella di eliminare il sito IIS locale (da IIS Manager) e quindi ricreare la directory virtuale dalle "Proprietà" del progetto Web in Visual Studio.

202
  1. Aprire IIS e selezionare il sito che sta causando 401
  2. Selezionare autenticazione proprietà in Intestazione IIS
  3. Selezionare autenticazione anonima
  4. Fare clic destro su di esso, selezionare Modifica e scelgono Application identità del pool
  5. Riavvia il sito e dovrebbe funzionare
+11

Funziona ma perché? Puoi spiegare un po 'di più? – nthapa13

+2

Sembra funzionare perché, per impostazione predefinita, "utente specifico" per l'autenticazione anonima è IUSR, come indicato nella risposta accettata. Tuttavia, l'identità impostata sul pool di applicazioni * deve * avere le autorizzazioni per l'intero sito Web o il sito non verrebbe caricato. Così mentre il mio account IUSR non ha avuto accesso (infatti, sembra non esistere), l'account utilizzato dal pool di applicazioni lo fa. – Johann

+2

grazie amico mi hai salvato! –

4

Non si dispone della permissione per visualizzare questa directory o pagina utilizzando le credenziali fornite.

Ciò è avvenuto nonostante l'utente sia già autenticato tramite Active Directory.

Possono esserci molte cause di errore Accesso negato, ma se pensi di aver già configurato tutto correttamente dalla tua applicazione web, potrebbero esserci dei piccoli dettagli che sono stati dimenticati. Assicurati di dare l'autorizzazione appropriata agli utenti autentificati per accedere alla directory dell'applicazione web.

Ecco i passaggi che ho seguito per risolvere questo problema.

  1. Fare clic con il pulsante destro del mouse sulla directory in cui è archiviata l'applicazione Web, selezionare Proprietà e fare clic sulla scheda Protezione.

  2. Fare clic su Fare clic su Modifica ..., quindi Aggiungi .... Digitare gli utenti autenticati in Immettere i nomi degli oggetti da selezionare., quindi Aggiungere il pulsante. Digitare gli utenti autenticati in Immettere i nomi degli oggetti da selezionare.

  3. Fare clic su OK e si dovrebbe vedere utenti autenticati come uno dei nomi utente. Fornire le autorizzazioni corrette nella casella Autorizzazioni per utenti autentificati nella parte inferiore se non sono già stati controllati.

  4. Fare clic su OK due volte per chiudere la finestra di dialogo. Dovrebbe avere effetto immediato, ma se vuoi essere sicuro, puoi riavviare IIS per la tua applicazione web.

Aggiorna il browser e dovrebbe visualizzare la pagina Web ora.

Spero che questo aiuti!