2009-09-17 4 views
40

Estoy tratando de configurar mi entorno de desarrollo de Windows 7 y estoy teniendo problemas para conseguir que IIS funcione. He configurado todo como lo he estado haciendo desde IIS6, así que tengo los fundamentos abajo. Mi problema debe estar en algo que ha cambiado entre IIS7 e IIS7.5 o en el sistema operativo.IIS 7.5 bajo Win7 Prof. 64 bits Volviendo página en blanco (HTML no, en absoluto)

Ninguno de mis sitios web devolverá html. No es el sitio predeterminado y no es un sitio recién agregado.

Si

telnet localhost 80 

Luego, en la pantalla en blanco

GET/<enter> 

no consigo nada, ni un solo encabezado o elemento HTML.

Si entro en la basura en lugar de una petición GET me sale el siguiente código 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> 

Así que prueba IIS está ahí y el manejo de peticiones en el puerto 80.

en mi camino de los registros de IIS, yo no tener archivos en absoluto. Entonces, por cualquier razón, los registros no se escriben.

Si veo los ajustes básicos en el Sitio Web en el Administrador de IIS y haga clic en el botón Probar conexión consigo un error relacionado con los permisos:

El servidor está configurado para utilizar autenticación de paso a través de una cuenta integrada para acceder a la ruta física especificada . Sin embargo, IIS Manager no puede verificar si la cuenta incorporada tiene acceso. Asegúrese de que la identidad del grupo de aplicaciones tenga Acceso de lectura a la ruta física. Si este servidor está unido a un dominio, y la identidad del grupo de aplicaciones es NetworkService o LocalSystem, verificar que \ $ tiene acceso de lectura a la ruta física. Luego, pruebe estas configuraciones nuevamente.

Mi AppPool se ejecuta como ApplicationPoolIdentity, que no parece ser un usuario real, por lo que no puedo dar permisos de archivo de ApplicationPoolIdentity. Hice como prueba dar IIS_IUSR y todos los demás que pude encontrar el acceso completo a la ruta.

No importa lo que he hecho hasta el momento, no he visto IIS dicen que los permisos son correctos. Sin embargo, nunca he visto un error, especialmente un error de permisos (300s).

¿Alguna idea? Intenté eliminar completamente IIS, c: \ inetpub y luego volver a instalar todo. Básicamente estoy haciendo la configuración predeterminada aquí, así que debe ser algo simple.

Gracias por su tiempo ...

Respuesta

86

me lo resolvieron. Para cualquiera que tenga el problema, esto es lo que hice.

En primer lugar para reproducir el problema: estaba instalando IIS elija "ASP.NET" en la opción Agregar/Quitar las características de Windows menús. Esto fue seleccionar todo lo necesario para que IIS ejecutara aplicaciones .NET, pero curiosamente no pudo publicar páginas estáticas (.html, css, js etc.) Mi página de prueba era solo una página hello world .html, así que es por eso que no fue atendida.

Para solucionarlo: Para habilitar la publicación de contenido estático, debe seleccionar específicamente "Contenido estático" en Funciones HTTP comunes en la misma lista Agregar/quitar características de Windows. Una vez que haces esto, mi página de prueba funcionó bien.

En resumen: no entiendo cómo funcionaría un .NET típico sin contenido estático (CSS, imágenes, Javascript), así que no sé por qué MS no incluiría contenido estático por defecto al elegir ASP. RED. Tal vez mi flujo de trabajo en la instalación de IIS era incorrecto.

Estoy seguro de que había una manera de rastrear el flujo de la solicitud para encontrar las peticiones de contenido estático se estaban bloqueadas, pero no sé cómo hacerlo.

+1

gran información, solo se encontró con el mismo problema, y ​​esto lo arregló :-) – Steffen

+2

FWIW en Windows 2008 R2 Obtuve síntomas ligeramente diferentes: devolvería un encabezado HTTP válido con HTTP 200 OK y contenido de longitud 0. Sin embargo, se solucionó el contenido estático. – Andy

+1

@Matt Información impresionante aquí. Aunque esto iba a ser un dolor de cabeza :) – clamchoda

7

La resolución de Matt Cofer es correcta: para ver contenido estático debe haber instalado la función de Contenido estático durante la instalación inicial. Sin embargo, descubrí que las funciones Agregar/Eliminar no funcionaban para mí: solo mostraban un subconjunto de características y nada que ver con IIS.

Así que ... aquí es otra manera de instalar Contenido estático:

  1. abierto administrador del servidor de
    • Start Menu > type "server manager" in search field > click resulting link
  2. Expandir las Roles nodo
  3. botón derecho del ratón Servidor web (IIS) nodo para ver el menú contextual
  4. Seleccionar Agregar servicios de función en el menú contextual
  5. Cuando el Agregar servicios de función abre ventana, vaya a Web Server > Common HTTP Features
  6. Habilitar Contenido estático
  7. Haga clic Siguiente
+1

Windows 7 Professional no se envía con el Administrador del servidor. Para Win 7 Pro, debe usar "Activar o desactivar las características de Windows" desde el Panel de control> Programas y características. –

Cuestiones relacionadas