Script no servido por el controlador de archivos estáticos en IIS7.5

130

Acabo de intentar implementar mi primera aplicación web en IIS en mi portátil Windows 7 Home Premium. Después de crear la aplicación, tuve que cambiar al Grupo de aplicaciones clásico, luego establecer ese grupo para el marco 4.0. Ahora me sale el siguiente error:

Error HTTP 404.17 - No encontrado El contenido solicitado parece ser un script y no será atendido por el controlador de archivos estáticos.

La URL solicitada es http: // localhost: 80 / pvmms / default.aspx

Me temo que Google extenso no ha arrojado nada lo suficientemente claro o definido para que yo pueda trabajar y, como siempre, recurrí a los expertos.

EDITAR: sospecho que esto se debe a que no hay asignaciones de controlador de framework 4.0 para archivos .aspx. Sin embargo, aspnet_regiis incluso le da el dedo a mi usuario administrador y dice que necesito derechos de administrador para ejecutarlo.

EDITAR # 2: Registré todos los marcos (2 y 4, 32 y 64) y ahora todo funciona. Encontré esto agregando manualmente un mapa de script para .aspxaspnet_isapi y voila. No entiendo por qué la instalación del marco no hace esto, a menos que mi memoria me falle y solo habilite IIS después de instalar VS.

ProfK
fuente
Alternativamente, hágalo en web.config como se explica aquí stackoverflow.com/questions/2061678/…
bizl

Respuestas:

120

Tal vez sea demasiado tarde ahora, pero la mayoría de las veces necesitas correr

aspnet_regiis.exe -i  

después de instalar asp.net. Tal vez lo haría de todos modos ahora.

Remy
fuente
17
Hay dos herramientas de registro de IIS que se envían con .NET Framework; uno para sistemas estándar y otro para sistemas de 64 bits. La herramienta para sistemas de 64 bits se encuentra en el directorio Framework64 del directorio Microsoft.NET dentro de la carpeta Windows; por ejemplo, C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 contendría la herramienta de registro de IIS.
Matthew Lock
3
Si obtienes el error the command is not recognized as an internal or external command. Ejecútelo en el símbolo del sistema del desarrollador.
rockXrock
1
Tuve que hacer esto para el marco 2.0 en la carpeta Framework64. como lo que dijo @matthew Lock
codingNightmares
Además, si debe ejecutar 2.0 y 4.0, ejecute 2.0 primero.
SouthShoreAK
C:.. \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 (por v2.0 en x64) - Framework64 cambio de marco para x86, el cambio v2 * a * v4 v4 (Navegar a la carpeta principal para el nombre exacto)
JohnLBevan
63

Además de lo anterior, si necesita soporte WCF, es posible que deba ejecutar esto:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

Reemplace v3.0 a cualquiera que sea su versión de marco actual.

Adi
fuente
1
Nota para los demás, creo que en las aplicaciones web que usan el grupo de aplicaciones 4.0, deberá ejecutar aspnet_regiis nuevamente
Tim Gabrhel,
1
Para .Net 4 está en el directorio padre. Por ejemplo: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ServiceModelReg.exe -i
bytedev
57

Encontré este error de IIS 8.5 al intentar acceder a un servicio WCF que había escrito. Resulta que el servidor no tenía las funciones de Activación HTTP WCF activadas. Marqué las casillas e hice clic en el asistente, iisreset, comenzó a trabajar.

Panel de características de Windows

JTR
fuente
1
Esto funcionó para mí con IIS 8.5 y Windows 8.1. Necesitaba habilitar un ASHX para obtener el error descrito en la pregunta (HTTP 404.17)
Sergio A.
¡GRACIAS! Esto funcionó para mí. Sin embargo, en mi caso tuve que activarlo para .NET 2.0 ya que estoy usando el antiguo servicio web
Stefan Vasiljevic
Esta es una publicación antigua pero su solución me salvó el tocino. No habría encontrado esto en un millón de años ... en ningún otro lugar. Gracias.
Joe Schmucker
48

Si está utilizando iis 7.5.

Simplemente vaya al Administrador de IIS, abra las propiedades de su sitio web.

Verá la sección 'Asignaciones de controladores' allí, solo vaya a esa sección y busque 'staticFile'.

Lo más probable es que sea un último archivo en la lista.

Luego haga clic derecho sobre él y seleccione 'Revertir a padre'.

He perdido tantas horas mientras me enfrento a esta primera vez, de todos modos esto resolverá tu problema.

Kumar
fuente
2
Como respondió Adi: este comando hace todo eso: c: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \ ServiceModelReg.exe -i
JDC
¡Gracias @ Kumar por el consejo! IIS> Sitios> acme.com> Asignaciones de controladores> Revertir a principal. En mi caso, lo hice para todo el dominio y no solo para "staticFile". Esto funcionó para mí y fue más simple / preferible que ejecutar un ejecutable (aspnet_regiis.exe). ¿Por qué esta sugerencia no está más arriba? =)
jiminy
Sugerencia brillante ... pero ¿de dónde diablos vino ese tope? ¡No recuerdo haber conocido eso en versiones anteriores de IIS ...!
Mike Gledhill
25

Tuve este problema con Windows Server 2012 con ASP .NET 4.5, no puede usar aspnet_regiis.exe, y solo tengo que instalar ASP .NET 4.5 a través del Asistente para agregar roles y características:

ingrese la descripción de la imagen aquí

Puede encontrar el elemento de menú "Agregar roles y características" en el menú "Administrar", en la esquina derecha del Administrador del servidor

C. Augusto Proiete
fuente
1
Elemento de menú "Agregar roles y características" que puede encontrar en el menú "Administrar" en la esquina derecha del Administrador del servidor
Alexander Trofimov
16

texto alternativo

debería revisar esta opción, supongo

Jsinh
fuente
1
Eso solo establece si el contenido estático se puede servir o no. Mi problema es que las solicitudes de script se asignan a contenido estático. Si lo apago, IIS ni siquiera intenta servidor de la página, solo me da un espacio en blanco.
ProfK
16

Resolví este problema habilitando WCF Services

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

Pero tienen que admitirlo muchachos, esta configuración de IIS COMPLETA configura / adivina / prueba y ve / prueba esto / prueba que pasa 4 o 5 de nuestros días tratando de encontrar una solución en torno al enfoque ES UNA Broma COMPLETA Y EXTERNA.

CIERTAMENTE, 'IIS' ES EL MÁS GRANDE TRUCO DE CONFIANZA JUGADO EN MANKIND PARA FECHA

Ricardo
fuente
1
Todo lo que tiene que hacer es habilitar la función de contenido estático para IIS. Esto no tiene nada que ver con WCF.
ProfK
1
@ProfK depende de por qué está obteniendo ese error, diferentes causas dan como resultado el mismo error: si obtiene el error con un archivo SVC configurado para usar WCF, lo anterior lo corrige.
JohnLBevan
LOL totalmente de acuerdo, portando varios sitios y acabo de ver 5 tipos diferentes de error, todos sin mensaje de error real o muy críptico. Ejemplo "La página no se puede mostrar porque se ha producido un error interno del servidor" significa que ha agregado un tipo MIME de contenido estático que ya existe.
Mike Nelson
15

Sé que esta es una vieja pregunta, pero acabo de tener esto con una aplicación 3.5 en mi máquina reconstruida de Windows 8 y todavía estaba obteniendo esto después aspnet_regiis -iruy resultó que ASP.NET 3.5 no estaba marcado dentro de las características de desarrollo de aplicaciones (No hay suficiente reputación para publicar una imagen).

bicbmx
fuente
2
@bicbmx para la imagen, puede compartir un enlace después de cargarlo en algún lugar, por ejemplo, en imgur.com
superjos
12

Existe la posibilidad de que el grupo de aplicaciones creado para su aplicación de forma predeterminada sea la versión 2. Por lo tanto, aunque vea un controlador para la extensión .svc en la lista, no funciona y lo trata como un archivo estático. Todo lo que necesita es abrir las propiedades del grupo de aplicaciones y cambiarlo a la versión 4.

Konstantin Salavatov
fuente
8

Regístrese asp.net nuevamente ... resolverá el problema.
ingrese la descripción de la imagen aquí

Vaya al símbolo del sistema de Visual Studio
y registre asp.net como windows \ microsoft.net \ Framework [.Net version num] \ aspnet_regiis.exe -i

Sunil
fuente
2
aspnet_regiis.exe -i responde con "Esta opción no es compatible con esta versión del sistema operativo". ¿Por qué IIS es tan molesto?
Paul McCarthy
5

Tuve este mismo problema en una máquina con Windows 8 que estoy configurando. Había instalado vs2012 antes de vs2010, que instala .NET Framework 4.5. Tengo mis grupos de aplicaciones ejecutándose en 4.0. Me aseguré de tener aspnet registrado para 4.0 usando aspnet_regiis -i. Eso todavía no funcionó. Luego abrí las características de Windows y noté que 4.5 agregaba un conjunto llamado ".NET Framework 4.5 Advanced Services". Habilité el nodo de servicio WCF y sus hijos y luego mi punto final svc funcionó correctamente. Espero que esto ayude a las personas que están haciendo el cambio a Windows 8.

IceNine
fuente
Servidor 2012, IIS8 aquí también, gracias por el puntero que me hizo ir en la dirección correcta. Para aquellos interesados, requería activar el rol del servidor de aplicaciones y el rol del servidor web. Encontré la información que necesitaba aquí: msdn.microsoft.com/en-us/library/hh167503(v=nav.70).aspx
John
3

Me topé con esta pregunta cuando me encontré con el mismo problema. La causa raíz de mi problema fue un grupo de aplicaciones configurado incorrectamente. Se configuró para 2.0 inadvertidamente, cuando necesitaba configurarse como 4.0. La respuesta en el siguiente enlace me ayudó a descubrir este problema: http://forums.iis.net/t/1160143.aspx

Guarnición Neely
fuente
2

Yo tuve el mismo problema. Cuando agregué feaute de contenido estático para IIS, funciona bien.

jasharbn
fuente
2

Solo otra posible solución que encontré con el mismo mensaje de error.

Al intentar configurar una aplicación web .NET 4.0 en un nuevo grupo de aplicaciones, recibí este extraño error que me decía que estaba tratando de procesar mi archivo aspx con el controlador de archivos estáticos, lo que no tenía sentido.

Por alguna razón, el ISAPI para .NET 4.0 se configuró en deshabilitado en el área de Restricciones de ISAPI y CGI del nivel del servidor en el administrador de IIS. Establecerlo como habilitado era todo lo que se requería , sin embargo, el administrador de IIS 7.5 es tan complicado y difícil de seguir que me llevó mucho tiempo resolver esto.

Supongo que, dado que era una aplicación 4.0 que el motor 4.0 no podía procesar, el controlador de archivos estáticos se estaba utilizando de forma predeterminada.

DarrenMB
fuente
2

Para otras personas que leen esto:

Esto puede suceder si la versión .Net que ha registrado no es la seleccionada en "Configuración básica" del grupo de aplicaciones adjunto a su sitio web. Por ejemplo, el grupo de aplicaciones de su sitio tiene seleccionado .Net v2.0 pero usted registró v4.0

b15
fuente
2

Para Windows 10 / Framework 4.7, tuve que activar la activación HTTP a través del siguiente método:

  1. Panel de control> Programas y características> Activar o desactivar las características de Windows
  2. En .NET Framework 4.7 Advanced Services, expanda Servicios WCF, seleccione para verificar la Activación HTTP y cualquier otra cosa que necesite cuando trabaje con WCF
  3. Haga clic en Aceptar y deje que la instalación haga lo suyo, luego abra un símbolo del sistema administrativo y emita el comando IISRESET
Will Buffington
fuente
1

cmd -> clic derecho -> Ejecutar como administrador

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i

Safaa Elgendi
fuente
0

Usando el administrador IIS, descubrí que los archivos .aspx se asignaron (en "Asignaciones de controladores") a ISAPI 2.0, a pesar de que ASP.NET 4.5 se había instalado previamente. Editarlos para que apunten (también) a un ejecutable para ISAPI 4.0 de 64 bits solucionó el problema.

El ejecutable se encontró en% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll

Matthew Diggins
fuente
0

Recibí este mensaje para una aplicación en iis 7.5 con un grupo de aplicaciones clásico asignado a .net 2.0. Necesitaba ir a Asignaciones de controlador y agregar dos mapas de script, ambos eran iguales excepto por el nombre. un nombre era svc-ISAPI-2.0-64, el otro era svc-ISAPI-2.0. La ruta de solicitud fue .svc. Y el ejecutable fue% SystemRoot% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll. reinicié iis y todo fue feliz

Robert
fuente
0

Uno de los peores escenarios que acabo de resolver es tener una entrada conflictiva en Web.config.

En mi máquina local no tenía la extensión .woff registrada en IIS, así que la agregué usando Web.config. Pero en el servidor de producción .woff tenía el tipo mime registrado. Esto causó un conflicto a nivel de aplicación.

La parte divertida es que no hay ningún error registrado para esto. Solo un trabajo de adivinanzas (primera vez, por supuesto).

Entonces, para mí, la solución era simplemente eliminar y / o elementos de web.config.

Ashish
fuente
0

Tuve el mismo problema, acabo de cambiar la versión del marco de destino en el sitio web a la versión en la que está desarrollada, la misma en IIS. Esto resolvió mi problema. Espero que esto ayude...

Gracias

Arjun
fuente
0

podría ser una razón múltiple, en mi caso en Grupo de aplicaciones-> configuración avanzada-> Habilitar la aplicación de 32 bits (debería ser verdadero). Antes estaba configurado en falso.

madhur
fuente
-1

Navegue a su gusto de directorio de arquitectura .Net y CPU usando CMD o powershell

Ingrese este comando: aspnet_regiis –r

jose vega
fuente
En Windows Server 2008 R2 dice: "Esta opción no es compatible con Windows Vista".
CSharper
No hay una opción llamada -r
NishantMittal