ASP MVC in IIS 7 restituisce: Errore HTTP 403.14 – Vietato

Sto sviluppando un progetto web ASP MVC. Ora ho un requisito che mi costringe a distribuire su un IIS7 in via di sviluppo (per controllare alcune funzionalità). Ricevo il messaggio di errore sopra menzionato ogni volta che provo a digitare l’URL del sito web. (Nota: macchina di sviluppo: Vista Home Premium, IIS7)

Quello che ho fatto fino ad ora:

Modificato il file HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).

Inserisci due domini (127.0.0.1 dominio1.com e 127.0.0.1 dominio2.com).

Creata una cartella c: \ websites \ dirOfApplication e distribuita da Visual Studio 8 in questa cartella.

In IIS7 ha creato un nuovo sito con il nome host domain1.com e la cartella dell’applicazione sopra.

Digitando l’indirizzo domain1.com nel browser Web si ottiene l’errore sopra riportato (Errore HTTP 403.14 – Vietato – Il server Web è configurato per non elencare il contenuto di questa directory.)

Penso che mi manchi qualcosa ma non so cosa! Prova a distribuire i file System.Web.Mvc, System.Web.Abstraction e System.Web.Routing con lo stesso risultato. Ogni volta che provo a colpire F5 ed eseguire l’applicazione, funziona benissimo!

Forse è utile a qualcuno: dopo aver convertito la mia app in MVC 4 con .NET framework 4.5 e aver installato il framework sul mio server con IIS 7.0 ho riscontrato lo stesso errore “proibito” menzionato nella domanda. Ho provato tutte le opzioni sopra descritte senza alcun risultato, quando ho notato il

   

mancava dal mio web.config. Dopo aver aggiunto questo, tutto ha funzionato. Semplice, ma facile da trascurare …

MODIFICARE:

Ovviamente la soluzione sopra funzionerà, ma è davvero uno spreco di risorse. Penso che sia meglio aggiungere il modulo di routing come sottolineato da Chris Herring nei commenti.

       

Ho risposto su SO qui , domanda: 403 – Proibizione sulla distribuzione di base di MVC 3 su iis7.5

Esegui aspnet_regiis -i . Spesso ho scoperto che è necessario farlo per far funzionare le app 4.0. Aprire un prompt dei comandi come Administrator (fare clic con il pulsante destro del mouse sull’icona del prompt dei comandi e selezionare Esegui come amministratore):

 cd \ cd Windows\Microsoft.NET\Framework\v4.xxx.xxx aspnet_regiis -i 

Una volta installato e registrato, assicurarsi che l’applicazione utilizzi un pool di applicazioni impostato su .NET 4.0.

AGGIORNAMENTO: ho appena trovato un problema con questo comando. L’utilizzo di -i ha aggiornato tutti i pool di applicazioni in ASP.NET 4.0.

L’utilizzo di aspnet_regiis -ir installa la versione di ASP.NET ma non modifica alcuna applicazione Web in questa versione. Potresti anche voler rivedere l’opzione -iru.

Anch’io ho avuto questo errore. Tutta la configurazione e le autorizzazioni erano corrette. Ma ho dimenticato di copiare Global.asax sul server, e questo è ciò che ha dato l’errore 403.

È perché sei troppo sicuro di ciò che tu (io) stai facendo!

Sul mio computer è installato IIS 7 ma il componente ASP.NET richiesto (Pannello di controllo-> Programmi-> Attiva / Distriggers-> ASP.NET) non lo era.

Quindi l’installazione di questo ha risolto il problema

Nel mio caso il seguente approccio mi ha aiutato:

  1. aspnet_regiis -i in Windows\Microsoft.Net\Framework

  2. Aggiunta di moduli a system.webServer

       ...  

Ho avuto lo stesso problema. Questo articolo di supporto Microsoft l’ha risolto per me.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-errors-quando-si-tentativo-to-process-senza estensione-URL-on-II-7-e-IIS 7.5

Nella finestra di dialogo “Attiva o distriggers le funzionalità di Windows” dell’applicazione “Programmi e funzionalità” del Pannello di controllo di Windows, procedere come segue:

  1. Passare al seguente nodo: Internet Information Services -> Servizi Web -> Funzionalità HTTP comuni
  2. Assicurati che l’opzione “Reindirizzamento errori HTTP” sia selezionata.

-o-

  1. Passare al seguente nodo: Internet Information Services -> Servizi Web -> Funzionalità delle prestazioni
  2. Assicurarsi che l’opzione “Static Content Compression” sia selezionata. Dopo che entrambe le opzioni sono state selezionate, fare clic su “OK” per salvare le modifiche.

La ritriggerszione del modulo HTTP Error Redirection o del modulo Static Content Compression assicura che ASP.NET e IIS sincronizzino correttamente gli eventi della pipeline HTTP. Ciò consente al modulo di routing dell’URL di elaborare URL senza estensioni.

Prova ad applicare le seguenti impostazioni mostrate di seguito:

1) Fornire l’authorization necessaria all’utente IIS_IUSRS su IIS Server (fare clic con il pulsante destro del mouse sul sito Web, quindi Modifica autorizzazioni> Sicurezza).

inserisci la descrizione dell'immagine qui

2) Se si utilizza .NET Framework 4 , assicurarsi che la versione di .NET Framework sia v4.0 nel Application Pool utilizzato dal sito Web.

inserisci la descrizione dell'immagine qui

Spero che questo ti aiuti…

Si prega inoltre di verificare, se si sta eseguendo x64, di aver abilitato le applicazioni a 32 bit nelle impostazioni del pool di applicazioni

inserisci la descrizione dell'immagine qui

Nella sezione Deseleziona “Precompila durante la pubblicazione” , ricevevo l’ errore 403.14 su un servizio Web che avevo appena scritto in VS2015, quindi l’ho riscritto in VS2013 e ricevevo lo stesso errore. In entrambi i casi ho avuto “Precompila durante la pubblicazione” in. Ho deselezionato ma stava ancora ottenendo l’errore. Nel mio caso avevo anche ” Elimina tutti i file esistenti prima della pubblicazione ” ma non stavo cancellando tutto dalla directory di destinazione sul server prima di copiare lì i nuovi file pubblicati. Se non lo fai, viene lasciato un file ” PrecompiledApp.config ” che causa il problema. Una volta cancellato il file, ero d’oro su entrambe le versioni VS2013 e VS2015 del mio servizio web.

Si noti che a volte la Managed pipeline mode errato causerà questo errore. Ci sono due opzioni per selezionare integrated e classic .

Come risolvere “Errore HTTP 403.14 – Proibito Il server Web è configurato per non elencare il contenuto di questa directory”

Questo errore si verifica quando MVC 2+ è in esecuzione su IIS 7+, poiché ASP.NET 4 non è stato registrato in IIS. Nel mio caso stavo creando un progetto MVC 3 e lo ospitavo su IIS 7.5.

Per risolvere il problema, assicurati di avere MVC 2 o successivo e .Net Framework 4.0 installato, quindi esegui un prompt dei comandi come amministratore e digita la seguente riga:

32 bit (x86)

% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64 bit (x64)

% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

Se le risposte migliori non funzionano, cercare una configurazione denominata PrecompiledApp.config nella directory di hosting ed eliminarla se esiste. Questo file impedisce a IISExpress e LocalIIS di funzionare correttamente. (E penso che sia un bug) Il contenuto del file nel mio caso era:

  

E sono al 100% positivo che è stato il problema con il mio caso da quando ho provato tutto in 2 ore e testato molte volte con questa configurazione.

Un’altra cosa: non è ansible utilizzare aspnet_regiis nelle versioni più recenti di Windows e IIS, quindi provare

 dism /online /enable-feature /featurename:IIS-ASPNET45 /all 

Ho provato tutto qui; niente ha funzionato. Il problema era nel mio file Web.config , in qualche modo il binding dell’assembly dipendente è stato modificato dal minimo 1 al minimo 0 .

         

Ho anche riscontrato questo stesso errore, nonostante tutte le soluzioni fornite per i seguenti motivi:

  • DLL mancanti
  • La stringa di connessione al database punta a un server inaccessibile.

Controlla il tuo file Global.asax . Nel mio caso, era vuoto.

Nel mio caso mancavano web.config e tutti i file tranne la cartella / bin (non copiati in qualche modo).
Sciocco, ma era l’ultima cosa che ho controllato.

Recentemente ho riscontrato questo errore e ho scoperto che il problema era causato dalla funzionalità “Reindirizzamento HTTP” non abilitata sul mio Windows Server. Questo post del blog mi ha aiutato a superare la risoluzione dei problemi per trovare la risposta (nonostante fossero versioni precedenti di Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable -not-working-with-iis.aspx per i server più recenti accedere a Gestione computer, quindi scorrere verso il basso fino al ruolo Server Web e fare clic su add role services

Ho usato Identity Impersonate:

    

Quando si spinge verso il server, è necessario fornire il nome utente per accedere alla cartella Temporary ASP.NET Files in modo che possa leggere / scrivere / eseguire correttamente:

C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files

Ovviamente sostituisci “frameworkversion” e “aspversion” con le versioni che stai utilizzando.

Sto usando: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5

Se nessuno dei precedenti ha funzionato, prova questo:

Deseleziona “Precompila durante la pubblicazione”

Questo mi ha dato un calcio in culo per alcuni giorni.

Con il progetto ASP.NET con C # 4.5 ho risolto questo problema installando l’ estensione ASP.NET in Web Platform Installer

Anche un’altra cosa può essere ansible

installa .net framework 4.0 manualmente

Questa soluzione è per IIS7 nella finestra 7

apre cmd con i privilegi di amministrazione

vai alla directory “C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319”

digitare aspnet_regiis.exe -i

arriva al tuo gestore inet digitando il comando run “inetmgr”

aggiorna il tuo IIS7

ricarica il sito.

Ho avuto questo problema, ma è stato risolto facilmente andando al gestore di Internet Information Services (IIS), facendo doppio clic su Directory Browsing e facendo clic su Abilita.

Nel mio caso, ho potuto accedere direttamente ai file ma non ho potuto accedere alle cartelle.

So che hai avuto questo problema in un host interno, ma avevo già riscontrato un problema simile in un host esterno e nel mio caso aveva una sua risoluzione, forse poteva salvare il tempo di qualcuno:

In effetti il ​​mio sito web è stato ARRESTATO per qualche motivo al quale attualmente non sono a conoscenza, per verificarlo se hai lo stesso problema, nella pagina principale di WebsitePanel vai su Web -> Siti Web quindi seleziona il nome di dominio del tuo sito web dall’elenco , dopo quello nella parte destra della pagina appena aperta, controlla se vedi la parola STARTED, altrimenti se vedi la parola STOPPED, fallo ricominciare. È tutto.

Ho digitato in modo errato l’indirizzo IP di una cifra, il che significava che stava andando a uno dei miei altri server. Molto confuso come si ottiene una pagina di errore .NET ma dalla macchina sbagliata!

So che questo è un vecchio argomento, ma puoi anche ottenere questo errore (quando esegui il debug) se hai una cartella con lo stesso nome di una rotta in un controller.

Ad esempio, se si dispone di un UserController, con una route denominata / User e si dispone anche di una cartella nella soluzione denominata “Utente”, IISExpress proverà a sfogliare la cartella anziché a mostrare la propria vista.

Passaggio 1: selezionare il sito per il quale l’errore HTTP viene prodotto in IIS e quindi fare clic su Navigazione directory come mostrato nell’immagine seguente:

Passaggio 2: nella finestra di navigazione della directory in IIS, fare clic su Abilita in azioni sul lato destro, come mostrato nello schema seguente:

Ora Directory Browsing è abilitato per il sito Web asp.net, basta riavviare l’applicazione Web in IIS e navigare nel sito nel browser e vedere il risultato.

puoi facilmente risolverlo seguendo i seguenti passaggi:

apri il gestore iis e scegli il tuo sito che desideri distribuire (dal pannello treeview sul lato sinistro) e poi fai doppio clic sull’icona di impostazione dell’applicazione per aprire il dialogo delle impostazioni dell’applicazione e poi dovresti vedere una griglia sullo schermo, quindi fai doppio clic sulla riga denominata pagine web: Abilitato e il valore impostato su true (che è false per impostazione predefinita).

ha funzionato per me perché prima che lo facessi ho ricevuto lo stesso errore, ho persino abilitato la navigazione nella directory (come guida iis ufficiale raccomandata nel forum di iis) ma quando ho sfogliato il sito ho seminato una lista di directory piuttosto che una vera pagina web ma quando ho fatto il passaggi sopra il problema risolto e ogni cosa ha funzionato bene (ma non dimenticare di concedere l’accesso per asppool in accessi SQL dopo aver risolto questo problema ovviamente)

come ho detto ha funzionato bene per me spero che funzioni bene anche per te