2012-01-29 12 views
87

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, visualizzo il seguente messaggio di errore.IIS Express fornisce l'errore Accesso negato durante il debug di ASP.NET MVC

Come può essere risolto?

Errore server nell'applicazione '/'.

Accesso negato. Descrizione: si è verificato un errore durante l'accesso alle risorse richieste per servire 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

sono in esecuzione l'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 di default e apparentemente IISExpress.exe non ha dato elenchi di cartelle per rendere ovvio. –

risposta

12

Nel mio caso ho dovuto aprire il file:

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

ho avuto questa all'interno del file:

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

ho appena rimosso la parte User="". Io davvero non so come questa cosa non ci ha ... :)

Nota: Assicurati di avere qualcosa di simile alla fine del applicationhost.config:

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

Si consiglia inoltre di 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 ancora non funziona per me. Se aperto da vs2010 funziona bene, qual è il problema rispetto al 2013 – GANI

+0

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

93

La causa del problema era se IIS Express non consentiva WindowsAuthentication. Questo può essere abilitato impostando

<windowsAuthentication enabled="true"> 

nel file ApplicationHost.config si trova in C: \ Users [nome utente] \ Documenti \ IISExpress \ config.

+18

Visual Studio 2010 e 2012 possono aggiungere questa impostazione per ciascun progetto, in modo che l'impostazione globale non venga modificata rispetto all'impostazione predefinita, vedere http: // stackoverflow.com/a/7168308/23566 –

+0

Sto provando quell'impostazione, perché sto ottenendo anche questo errore in ** VS 2013 ** sporiadicamente, vediamo se è d'aiuto, ti farò sapere. – Matt

+1

Meglio se si utilizza% userprofile% \ documents \ iisexpress \ config \ applicationhost.config. Il mio era su D: (grazie Dan! Http://www.danesparza.net/2014/09/using-windows-authentication-with-iisexpress/) –

85

Se si utilizza Visual Studio, è possibile anche sinistro del mouse sul progetto in Esplora soluzioni e cambiare il autenticazione di Windows proprietà Enabled nelle Proprietà finestra.

+2

Non è specifico per Visual Studio 2012, può essere realizzato almeno su Visual Studio 2010. – Louhike

+5

Ha funzionato per me in VS 2013. – kaybee99

+0

Questa è la soluzione meno invasiva. Questo è probabilmente il modo in cui MS vorrebbe che lo facessimo. –

5

Ho dovuto eseguire Visual Studio in Administrative Mode per eliminare questo errore.

6

Nel mio caso una precedente esecuzione della mia app da VS ha riservato l'URL.Ho potuto vedere questo eseguendo in una console:

netsh http show urlacl 

per cancellare questa prenotazione mi sono imbattuto in questo una console elevata:

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

ho trovato questi passaggi here risolto il mio problema.

sto usando VS2013

+0

Ciò è molto utile se hai mai modificato il tuo file applicationhost.config per eseguire un sito su più porte contemporaneamente. La rimozione delle voci da .config non rimuove alcuna prenotazione in netsh. Grazie uomo. – Dusda

0

Ho appena riparato questo problema esatto in IIS EXPRESS risolto modificando il .config host di applicazione alla sezione posizione specifica al di sotto. Avevo impostato l'autenticazione di Windows in Visual Studio 2012, ma quando sono entrato nell'XML sembrava questo.

il tag di autenticazione di Windows deve 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

mi è stato alle prese con questo problema cercando di creare un semplice App per SharePoint utilizzando Provider ospitato.

Dopo aver esaminato il file applicationhost.config, nella sezione basicAuthentication è stato impostato su false. Ho cambiato in vero per superare il 401.2 nel mio scenario. Esistono molti altri link su come trovare applicationhost.config per IIS Express.

17

Hosting su IIS Express: 1. Fare clic sul progetto in Solution Explorer 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".

3

Avevo anche lo stesso problema e finalmente potevo superarlo.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

ho scelto un altro numero di porta , e ogni cosa è diventato bene!

0

Nessuno dei precedenti aveva funzionato per me. Questo ha funzionato per me prima di oggi. Mi sono reso conto che avevo lavorato con la creazione di una connessione ospitata sul mio portatile 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

Fai clic destro su qualsiasi secondaria connessione di rete wireless si può avere (la mia era chiamato Wireless Network Connection 2) e fare clic su "Proprietà".

Vai alla scheda "Condivisione" in alto.

Deselezionare la casella "Permetti agli altri utenti della rete di connettersi tramite la connessione Internet del computer".

Premere OK> quindi Applica.

Spero che questo aiuti!

40

Ho usato la risposta di Jason ma volevo chiarire come accedere alle proprietà.

  1. Seleziona progetto in Esplora soluzioni

enter image description here

  1. F4 per arrivare alla proprietà (diverse rispetto al tasto destro del mouse proprietà)
  2. Modifica Autenticazione Windows a Abilitato

enter image description here

+3

Grazie mille per averlo scritto e specificare che sono le proprietà F4 che devono essere cambiate. – PeterDNCO

+1

GRAZIE. UGH FINALMENTE. – kyurthich

+1

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

0

non ho visto questo "completo" risposta da nessuna parte; Ho appena visto quello di cambiare i numeri di porta dopo che ho postato questo, quindi meh.

Assicurarsi che nelle proprietà del progetto in Visual Studio l'URL del progetto non sia assegnato allo stesso URL o porta utilizzato in IIS per qualsiasi binding del sito.

Sto cercando il "perché" per questo, ma il mio assunto è che IIS e Visual Studio di IIS Express usano la stessa directory quando creano le directory virtuali e Visual Studio può solo creare un nuovo virtual directory e non può modificare alcuno che IIS abbia creato quando applica i suoi collegamenti al sito.

non esitate a correggermi sul perché.

0

La 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 in questione e li abbiamo aggiunti uno alla volta finché non è stato individuato e corretto il controllo corretto.

1

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

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

e il mio sito si avvicinò, ma ci sono issuues con l'autenticazione ..

Problemi correlati