2009-09-17 2 views
40

Sto cercando di configurare il mio ambiente di sviluppo in Windows 7 e sto avendo problemi a far funzionare IIS. Ho impostato tutto come ho fatto da IIS6 quindi ho le basi giù. Il mio problema deve essere in qualcosa che è cambiato tra IIS7 e IIS7.5 o nel sistema operativo.IIS 7.5 in Win7 Prof. 64bit Pagina di restituzione vuota (nessun codice HTML)

Nessuno dei miei siti Web restituirà html. Non il sito predefinito e non un sito appena aggiunto.

Se

telnet localhost 80 

Poi lo schermo vuoto

GET/<enter> 

non ottengo niente, non un singolo elemento di intestazione o HTML.

Se entro spazzatura invece di una richiesta GET ricevo il seguente codice HTML:

HTTP/1.1 400 Bad Request Content-Type: 
text/html; charset=us-ascii Server: 
Microsoft-HTTPAPI/2.0 Date: Thu, 17 
Sep 2009 17:04:01 GMT Connection: 
close Content-Length: 326 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Bad 
Request</TITLE> <META 
HTTP-EQUIV="Content-Type" 
Content="text/html; 
charset=us-ascii"></HEAD> 
<BODY><h2>Bad Request - Invalid 
Verb</h2> <hr><p>HTTP Error 400. The 
request verb is invalid.</p> 
</BODY></HTML> 

In modo che dimostra IIS è lì e gestione delle richieste sulla porta 80.

Nel mio IIS registra percorso, ho non avere file. Quindi, per qualsiasi motivo, i registri non vengono scritti.

Se osservo le impostazioni di base sul sito Web in Gestione IIS quindi fare clic sul pulsante Verifica connessione ottengo un errore relativo al permesso:

Il server è configurato per l'utilizzo autenticazione pass-through con un Account integrato per accedere al percorso fisico specificato . Tuttavia, IIS Manager non può verificare se l'account integrato ha accesso. Assicurati che l'identità del pool di applicazioni sia Accesso in lettura al percorso fisico. Se questo server è unito a un dominio e l'identità del pool di applicazioni è NetworkService o LocalSystem, verificare che \ $ ha Accesso in lettura al percorso fisico. Quindi, prova nuovamente queste impostazioni.

mio AppPool è in esecuzione come ApplicationPoolIdentity che non sembra essere un vero e proprio utente, quindi non posso dare i permessi dei file ApplicationPoolIdentity. Ho fatto un test per dare IIS_IUSR e tutti gli altri ho potuto trovare pieno accesso al percorso.

Non importa cosa ho fatto fino a questo punto, non ho visto IIS dire che le autorizzazioni sono corrette. Tuttavia, non ho mai visto un errore, specialmente non un errore di autorizzazione (300s).

Quindi, qualche idea? Ho provato a rimuovere completamente IIS, c: \ inetpub e quindi reinstallare tutto. Fondamentalmente sto facendo la configurazione di default qui, quindi deve essere qualcosa di semplice.

Grazie per il vostro tempo ...

risposta

86

ho risolto. Per chiunque abbia il problema, ecco cosa ho fatto.

Prima di replicare il problema: stavo installando IIS scegliendo "ASP.NET" nel menu Aggiungi/Rimuovi funzionalità di Windows. Questo stava selezionando tutto il necessario per IIS per eseguire le app .NET, ma in modo interessante non poteva servire pagine statiche (.html, css, js ecc.) La mia pagina di test era solo una pagina html di Hello World, ecco perché non veniva servita.

Per risolvere il problema: Per abilitare la pubblicazione di contenuto statico, è necessario scegliere in modo specifico "Contenuto statico" in Funzionalità HTTP comuni nella stessa lista Aggiungi/Rimuovi funzionalità di Windows. Una volta fatto questo, la mia pagina di test ha funzionato bene.

In sintesi: non capisco come un tipico .NET possa funzionare senza contenuto statico (CSS, Immagini, Javascript), quindi non so perché MS non includa Contenuto statico per impostazione predefinita quando si sceglie ASP. NETTO. Forse il mio flusso di lavoro nell'installazione di IIS era sbagliato.

Sono sicuro che c'era un modo per tracciare il flusso della richiesta per trovare il contenuto statico, le richieste venivano bloccate, ma non so come farlo.

+1

Ottime informazioni, ho riscontrato solo lo stesso problema e questo lo ha risolto :-) – Steffen

+2

FWIW su Windows 2008 R2 Stavo ottenendo sintomi leggermente diversi: restituirebbe un'intestazione HTTP valida con HTTP 200 OK e lunghezza del contenuto 0. L'abilitazione del contenuto statico la risolveva comunque. – Andy

+1

@Matt Informazioni fantastiche qui. Anche se questo sarebbe stato un mal di testa :) – clamchoda

7

La risoluzione di Matt Cofer è corretta: per visualizzare il contenuto statico è necessario aver installato la funzione Contenuto statico durante l'installazione iniziale. Tuttavia, ho trovato che le funzionalità Aggiungi/Rimuovi non funzionavano per me: mostrava solo un sottoinsieme di funzionalità e nulla a che fare con IIS.

Quindi ... Ecco un altro modo di installare i contenuti statici:

  1. Aprire Server Manager
    • Start Menu > type "server manager" in search field > click resulting link
  2. Espandere i ruoli nodo
  3. pulsante destro del mouse Web Server (IIS) nodo per visualizzare il menu contestuale
  4. Selezionare Aggiungi servizi ruolo dal menu contestuale
  5. Quando il Aggiungi servizi ruolo apre finestra, spostarsi Web Server > Common HTTP Features
  6. Abilita Contenuto Statico
  7. Clicca Avanti
+1

Windows 7 Professional non viene fornito con Server Manager. Per Win 7 Pro, è necessario utilizzare "Attiva o disattiva funzionalità Windows" da Pannello di controllo> Programmi e funzionalità. –