IIS 7.5 non carica pagine HTML statiche


10

Esiste un IIS 7.5 appena installato su un server dedicato. App Web ASP.NET 4.0 copiata nella sua cartella, il nuovo sito Web viene creato sul proprio IP su post 80, gli account IIS_IUSR e IUSR hanno diritti di lettura / esecuzione sulla cartella del sito, il sito viene assegnato al proprio pool di app integrato con 4.0 .NET (Ho provato il Pool classico con gli stessi risultati).

Il problema: quando provo ad accedere a questo sito Web, il browser carica solo il contenuto generato da risorse .NET come pagine aspx, file .axd, ecc. Immagini statiche, file js statici, css e html si trovano nell'origine della pagina ma IIS no non li servono. Gli strumenti di sviluppo in tutti i browser lamentano che tutte quelle risorse statiche sono state inviate dal server con un tipo di contenuto errato (testo normale anziché immagine, stili, ecc.). Cosa faccio di sbagliato?


Cosa vedi in Fiddler (o Firebug)?
SLaks,

Se ciò è possibile, esegui la pagina sul server, in particolare esegui da solo il contenuto statico sul server e otterrai un rapporto di errore completamente dettagliato.
Aristos,

Non uso Firebug. Ma Chrome, ad esempio, lamenta "Risorsa interpretata come immagine ma trasferita con testo / plain di tipo MIME" per un file jpg sulla pagina. Lo stesso per tutti gli stili, js e pagine html statiche. Inoltre, carichi dinamici di script e html non funzionano.

@ Aristos: l'ho fatto. Il browser del server esegue il rendering della pagina allo stesso modo dei browser esterni. Nessun errore, solo pagina incompleta.

L'utente che esegue il web server ha il diritto di leggere quei file?
Luc M

Risposte:


12

IIS 7 / 7.5 ha una nuova "funzionalità" - Servizi ruolo. Il post di rsbarro mi ha ricordato che esiste un servizio ruolo responsabile del contenuto statico. È Web Server / Funzionalità HTTP comuni / Contenuto statico. Controlla se l'icona Tipi MIME è presente in Gestione IIS, come suggerito da rsbarro.

In caso contrario, è necessario installare il servizio ruolo Contenuto statico. Per fare ciò, selezionare:

  • Server Manager
  • ruoli
  • Nodo Server Web (IIS) dal riquadro sinistro
  • scorrere fino alla finestra Servizi ruolo
  • vedere se è installato il servizio ruolo Contenuto statico.

Da quello che descrivi, questo sembra essere il tuo problema.

In generale, se IIS7 non fa qualcosa che IIS6 ha fatto, la prima cosa da controllare è vedere se il servizio ruolo corrispondente è installato. Spero che sia di aiuto.


Ruolo dei contenuti statici, come mi sono perso? Grazie, risolto il problema perfettamente.
David Thomas Garcia,

6

Sotto IIS, vai al tuo sito web e controlla la sezione Tipi MIME (vedi immagine sotto). Assicurati di vedere le voci in quell'elenco per .js, .css, .html, ecc. E che abbiano il tipo MIME corretto specificato. IIS 7.5 pubblicherà le pagine solo se è stato specificato un tipo MIME. Per impostazione predefinita, i tipi MIME per queste estensioni sono impostati nel applicationHost.configfile situato nella C:\Windows\system32\inetsrv\configcartella (potrebbe essere necessario eseguire il blocco note come amministratore per visualizzare il file). Basta cercare .js e si dovrebbe trovare una voce sotto <mimeMap>nel <staticContent>elemento.

sono i tipi mime

Queste impostazioni possono essere sostituite nel tuo web.configfile. In tal caso, appariranno nella seguente posizione in web.config:

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

Sicuramente inizierei controllando lì. Se tutto sembra a posto nella sezione Tipi MIME, è possibile che tu abbia un modulo che interferisce con le richieste di file statici (ma molto probabilmente solo se hai <modules runAllManagedModulesForAllRequests="true" />impostato nella tua <system.webServer>sezione). In tal caso, rimuoverei tutti i moduli installati nel tuo web.confige vedere se riesci a visualizzare i file statici, quindi li rileggo uno alla volta per vedere quale modulo sta causando il problema. Se non riesci a capirlo, suggerirei di pubblicare i contenuti delle tue web.config(o almeno le sezioni system.webe system.webServer) nella domanda.


2

Ho avuto lo stesso problema, ma il mio pool di app era in esecuzione con un account di dominio e quell'utente aveva i diritti sulla cartella del sito Web. Il mio sito web ha visualizzato aspx ma nessun contenuto statico. Ciò che ha risolto il mio problema è stato l'aggiunta del gruppo IIS_IUSRS alla politica di sicurezza locale denominata "impersonare un client dopo l'autenticazione". Il gruppo IIS_IUSRS conteneva il mio account di dominio. Sto eseguendo iis 7.5 Windows 2008 Server.


Vorrei poter votare più di una volta. Sono arrivato a questa domanda durante la ricerca del motivo per cui i miei file .css non venivano offerti da IIS. Era correlato alle autorizzazioni di Windows per le cartelle in cui erano archiviate.
2b77bee6-5445-4c77-b1eb-4df3e5
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.