IIS Express restituisce un errore di accesso negato durante il debug di ASP.NET MVC


102

Ho creato un progetto ASP.NET MVC 3 e sto utilizzando IIS Express come server Web durante lo sviluppo. Quando provo a eseguire il debug, viene visualizzato il messaggio di errore riportato di seguito.

Come risolverlo?

Errore del server nell'applicazione '/'

L'accesso è negato. Descrizione: si è verificato un errore durante l'accesso alle risorse necessarie per soddisfare questa richiesta. Il server potrebbe non essere configurato per l'accesso all'URL richiesto.

Messaggio di errore 401.2 .: non autorizzato: accesso non riuscito a causa della configurazione del server. Verificare di disporre dell'autorizzazione per visualizzare questa directory o pagina in base alle credenziali fornite e ai metodi di autenticazione abilitati sul server Web. Contattare l'amministratore del server Web per ulteriore assistenza.


3
stai eseguendo IISExpress senza privilegi amministrativi?
chandmk

2
Quindi, dopo aver sbattuto la testa su questo per un po ', ho finalmente capito che era perché VS non aveva impostato una pagina predefinita e apparentemente IISExpress.exe non fornisce elenchi di cartelle per renderlo ovvio.
Mark Allen

Risposte:


113

Se utilizzi Visual Studio, puoi anche fare clic con il pulsante sinistro del mouse sul progetto in Esplora soluzioni e modificare la proprietà Autenticazione di Windows su Abilitato nella finestra Proprietà .


2
Questo non è specifico per Visual Studio 2012, può essere realizzato almeno anche su Visual Studio 2010.
Loïc Lopes

5
Ha funzionato per me in VS 2013.
kaybee99

2
È inoltre necessario disabilitare l'autenticazione anonima.
Smaltato il

1
In Esplora soluzioni fai clic sul nome del progetto sotto il nodo della soluzione, quindi passa alla finestra Proprietà, lì puoi vedere la proprietà Autenticazione di Windows impostarla su Abilitato
sairfan

1
Non vedo questa impostazione da nessuna parte nella finestra delle proprietà. Sto usando VS 2015.
Mark Bonafe,

99

La causa di questo problema era che IIS Express non consentiva l'autenticazione di Windows. Questo può essere abilitato impostando

<windowsAuthentication enabled="true">

nel file applicationhost.config situato in C: \ Users [nome utente] \ Documents \ IISExpress \ config.


19
Visual Studio 2010 e 2012 possono aggiungere questa impostazione per te, per progetto, in modo che l'impostazione globale non venga modificata rispetto a quella predefinita, vedi stackoverflow.com/a/7168308/23566
Robert Claypool

Sto provando quell'impostazione , perché ricevo anche questo errore in VS 2013 in modo sporiadico, vediamo se aiuta, ti farò sapere.
Matt

2
Meglio se usi% userprofile% \ documents \ iisexpress \ config \ applicationhost.config. Il mio era su D: (grazie Dan! Danesparza.net/2014/09/… )
Jeramy Rutley,

Questa è l'unica soluzione che ha funzionato per me, grazie mille!
Mohammad Anini

Ho provato questo in VS 2017 e non ha funzionato. La soluzione pubblicata da Jason ha funzionato.
myroslav

73

Ho usato la risposta di Jason ma volevo chiarire come entrare nelle proprietà.

  1. Seleziona il progetto in Esplora soluzioni

inserisci qui la descrizione dell'immagine

  1. F4 per accedere alle proprietà (diverse dalle proprietà del clic destro)
  2. Cambia l' autenticazione di Windows su Abilitato

inserisci qui la descrizione dell'immagine


3
Grazie mille per averlo spiegato e specificato che sono le proprietà F4 che devono essere modificate.
PeterDNCO

1
Grazie! Ho dovuto impostare anche "Autenticazione anonima" su "Abilitato".
Mahesh

1
Grazie mille anche a te!
FunMatters

1
Sei bello.
kosherjellyfish

1
Sto usando VS 2015, questo non esiste!
Mark Bonafe,

18

Hosting su IIS Express: 1. Fare clic sul progetto in Esplora soluzioni per selezionare il progetto. 2. Se il riquadro Proprietà non è aperto, aprirlo (F4). 3. Nel riquadro Proprietà del progetto: a) Impostare "Autenticazione anonima" su "Disabilitato". b) Impostare "Autenticazione Windows" su "Abilitato".


12

Nel mio caso ho dovuto aprire il file:

C:\...\Documents\IISExpress\config\applicationhost.config

Avevo questo all'interno del file:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

Ho appena rimosso la User=""parte. Non so davvero come sia arrivata questa cosa ... :)

Nota: assicurati di avere qualcosa di simile alla fine di applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

Puoi anche dare un'occhiata qui: https://stackoverflow.com/a/10041779/114029

Ora posso accedere alla pagina di accesso come previsto.


1
Ho seguito i tuoi passi ma non funziona ancora per me. Se aperto da vs2010 funziona bene, qual è il problema in vs 2013
GANI

@ user1016740 Non sono sicuro perché ci sono una miriade di possibilità / percorsi da seguire per provare a risolvere questo problema. I passaggi che ho descritto qui lo hanno risolto nel mio ambiente che penso sia diverso dal tuo.
Leniel Maccaferri

8

Nel mio caso una precedente esecuzione della mia app da VS ha riservato l'URL. Potrei vederlo eseguendo in una console:

netsh http show urlacl

per eliminare questa prenotazione l'ho eseguito in una console con privilegi elevati :

netsh http delete urlacl http://127.0.0.1:10002/

Ho trovato questi passaggi qui risolto il mio problema.

Sto usando VS2013


Questo è molto utile se hai mai modificato il tuo applicationhost.config per eseguire un sito su più porte contemporaneamente. La rimozione delle voci da .config non rimuove le prenotazioni in netsh. Grazie uomo.
Dusda

5

Ho dovuto eseguire Visual Studio Administrative Modeper eliminare questo errore.


3

Ho avuto anche lo stesso problema e finalmente sono riuscito a superarlo.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

Ho scelto un altro numero di porta e ogni cosa è andata bene!


1

Nessuno dei precedenti aveva funzionato per me. Questo aveva funzionato per me prima di oggi. Mi sono quindi reso conto che stavo lavorando alla creazione di una connessione ospitata sul mio laptop e avevo condiviso una connessione Internet con la mia connessione di rete wireless.

Per risolvere il mio problema:

Vai a Pannello di controllo> Rete e Internet> Connessioni di rete

Fare clic con il pulsante destro del mouse su qualsiasi connessione di rete wireless secondaria che potresti avere (la mia era chiamata Connessione di rete wireless 2) e fare clic su "Proprietà".

Vai alla scheda "Condivisione" in alto.

Deseleziona la casella che indica "Consenti ad altri utenti della rete di connettersi tramite la connessione Internet di questo computer".

Premi OK> quindi Applica.

Spero che questo ti aiuti!


1

Ho aperto il mio file web.config e ho trovato e rimosso questa sezione:

<authorization>
  <deny users="?" />
</authorization>

e il mio sito è apparso, ma ci sono problemi con l'autenticazione ..


Ok, ha aiutato a risolvere il problema, ma ora ho altri problemi che devo risolvere.
Jamshaid Kamran

0

Ho appena risolto questo problema esatto in IIS EXPRESS risolto modificando l'host dell'applicazione .config nella sezione della posizione specifica di seguito. Avevo impostato l'autenticazione di Windows in Visual Studio 2012 ma quando sono entrato nell'XML sembrava così.

il tag di autenticazione di Windows doveva essere aggiunto di seguito come mostrato.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

0

Ho lottato con questo problema cercando di creare una semplice app per SharePoint utilizzando Provider Hosted.

Dopo aver esaminato applicationhost.config, nella sezione basicAuthentication è stato impostato su false. L'ho cambiato in true per superare il 401.2 nel mio scenario. Ci sono molti altri collegamenti su come trovare applicationhost.config per IIS Express.


0

Non ho visto questa risposta "completa" da nessuna parte; Ho appena visto quello sulla modifica dei numeri di porta dopo aver pubblicato questo, quindi meh.

Assicurati che nelle proprietà del progetto in Visual Studio l'URL del progetto non sia assegnato allo stesso URL o alla stessa porta utilizzata in IIS per le associazioni di sito.

Sto cercando il "perché" per questo, ma la mia ipotesi in cima alla mia testa è che sia IIS che IIS Express di Visual Studio utilizzano la stessa directory durante la creazione di directory virtuali e Visual Studio può solo creare nuove directory virtuali e non può modificare tutto ciò che IIS ha creato quando applica i suoi collegamenti al sito.

sentiti libero di correggermi sul perché.


0

La nostra pagina di errore era dietro la pagina di accesso, ma la pagina di accesso aveva un errore in uno dei controlli, che crea un ciclo infinito.

Abbiamo rimosso tutti i controlli dalla pagina offensiva e li abbiamo aggiunti uno alla volta finché il controllo corretto non è stato individuato e risolto.


0

Nel mio caso (applicazione ASP.NET MVC 4), il Global.asaxfile mancava. Appariva in Esplora soluzioni con un punto esclamativo. L'ho sostituito e l'errore è andato via.

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.