2012-11-20 9 views
25

Ho creato un'applicazione MVC4 con .net 4.5 utilizzando il motore del rasoio. Funziona bene quando viene eseguito localmente con Visual Studio.Errore HTTP 403.14 - Vietato - Pacchetti MVC4 .net 4.5

Quando eseguo la distribuzione su IIS su Windows Server 2008 R2 (tutti gli aggiornamenti di Windows eseguiti), sembra che i miei pacchetti non funzionino e CCS non si carichi. Ho provato la visualizzazione del sito sul server, fonte visualizzata andato al link fascio per il css, e carica un po 'css e poi c'è un errore di IIS di:

Errore HTTP 403.14 - Forbidden Il server Web è configurato per non elencare il contenuto di questa directory.

Quello che ho cercato:

1) Accertato .net 4.5 è installato.
2) Aggiunto <modules runAllManagedModulesForAllRequests="true"/> al mio web.config
3) Ran %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir cmd
4) controllato che la mia piscina applicazione è stata impostata la modalità integrata
5) controllato che è impostato per utilizzare .NET 4

+0

Quali sono le autorizzazioni per la cartella da cui si stanno servendo le risorse? –

+0

@John Il pool di applicazioni e ISUSR hanno entrambi i permessi di lettura sulla cartella. – Kyle

+0

Puoi mostrare il codice di raggruppamento? Hai controllato se il debug di compilazione è falso con il framework di destinazione corretto? – Yogiraj

risposta

43

Troverai la tua risposta qui: ASP.NET MVC framework 4.5 CSS bundles does not work on the hosting

La risposta breve è assicurarsi che i nomi dei bundle non siano in conflitto con i nomi dei percorsi nei tuoi siti.

+3

Mi ha salvato un sacco di tempo per sicuro ... Questo ha risolto il mio problema, il mio pacchetto "~/Content/Template" era in conflitto con la mia cartella fisica. Tutto quello che dovevo fare era rinominare il nome del mio pacchetto. – covo

+0

Felice che la mia risposta ti abbia aiutato. Questo mi ha fatto impazzire per diverse ore un pomeriggio !! –

+0

Grazie. Mi hai aiutato anche tu! A proposito, sai perché questo si verifica solo con i bundle css? Ho la stessa configurazione nei pacchetti js e funziona bene. –

2

Assicurarsi che nel proprio web.config sia stato abilitato l'accesso anonimo ai percorsi dei pacchetti "virtuali".

Ad esempio, se i bundle di stile sono come "~/content/blahblah" e i pacchetti di javascript sono come "~/scripts/blahblah" devi aprire l'accesso anonymoy alle posizioni "content" e "scripts" come questo in web.config:

<configuration> 
... 
<location path="content"> 
    <system.web> 
    <authorization> 
    <allow users="?" /> 
    </authorization> 
    </system.web> 
</location> 

<location path="scripts"> 
    <system.web> 
    <authorization> 
    <allow users="?" /> 
    </authorization> 
    </system.web> 
</location> 
... 
</configuration> 

In questo modo, qualsiasi richiesta al percorso virtuale "~/contenuti" o "~/scripts" di ogni utente sarà concesso, e sarà servito il CSS e JS richieste.

7

Questo risolto per me (soluzione è da MVC4 HTTP Error 403.14 - Forbidden)

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 
+6

Mentre potrebbe risolvere il problema, è come uccidere una mosca con un lanciarazzi. 'runAllManagedModulesForAllRequests' ha un impatto sulle prestazioni sul tuo sito, poiché tutti i moduli gestiti verranno eseguiti per tutte le richieste, comprese le richieste di file statici come le immagini. –

1

Un altro potenziale problema che causa l'403.14 è il global.asax e/o web.config non essere copiati in tutto nelle impostazioni di pubblicazione o distribuzione.

+0

Grazie per avermi aiutato a risolvere il problema. In realtà per me mancava il file 'App_global.asax.compiled'! – Salar

Problemi correlati