"La página que está solicitando no se puede servir debido a la configuración de la extensión". mensaje de error

272

Recibo este mensaje de error cuando intento ejecutar mi aplicación. No sé cómo solucionarlo:

Error HTTP 404.3 - No encontrado La página que está solicitando no se puede servir debido a la configuración de la extensión. Si la pagina es un script, agregue un controlador. Si el archivo debe descargarse, agregue un mapa MIME.

Aquí hay una captura de pantalla de la página de error: texto alternativo

¿Qué puedo hacer para corregir este error?

Eric Leschinski
fuente
1
el código fuente sería más útil que la página de error
gsharp
1
¿Qué parte del código fuente necesitarías ver?
1
Después de seguir las instrucciones anteriores, también si obtiene el mismo error, siga con el siguiente enlace y siga los pasos Haga clic aquí
Raj

Respuestas:

170

Use aspnet_regiis.exe para registrar la versión de .NET framework que está utilizando.

Este es un problema común y ocurre cuando IIS se instala después de VS o .NET framework.

Nota: para usuarios de Windows 8/10, vea la otra respuesta de JohnOpincar a continuación . Y también el comentario / consejo de Kevin Brydon.

Aliostad
fuente
11
De hecho, instalé Visual Studio primero y luego IIS. Actualmente estoy ejecutando el comando "aspnet_regiis.exe -i". Esperemos que esto corrija el error.
55
También funcionó para mí cuando recibí este error al intentar acceder a un servicio .svc WCF.
atconway
Nota: para usuarios de Windows 8, vea la otra respuesta de JohnOpincar a continuación
KyleK
Para cualquier otra persona que encuentre esto a través de la Búsqueda, puede resultarle más fácil realizar una Reparación en la instalación de .NET en lugar de intentar ejecutar aspnet_regiis.exe como la ruta de menor resistencia y resuelve el problema. Estamos viendo esto mucho en los cuadros que han instalado .NET 4.5.2 (a través de Windows Update) antes de instalar el rol de IIS, es un poco frustrante porque estos cuadros mostrarán .NET 4 como una opción en su grupo de aplicaciones, pero si su aplicación requiere .NET 4.5 como la nuestra, fallará con el mensaje anterior.
aolszowka
246

En Windows 8/10, debes usar

  • Abrir panel de control →
  • Programas y características →
  • Activar o desactivar las características de Windows →
  • Servicios de información de Internet (IIS) →
  • Servicios de la World Wide Web →
  • Características de desarrollo de aplicaciones →
  • Marque los elementos apropiados, como habilitar ASP.NET. (es decir, instale la versión adecuada con la que desea configurar sus sitios web)

Referencia: verifique la solución de esta pregunta como referencia

JohnOpincar
fuente
217
Tenía que comprobar .NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
Kevin Brydon
13
ejecute este comando desde un símbolo del sistema del administrador: "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all", o "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all"
Paul Suart
Justo cuando me acostumbré a ejecutar regiis, Microsoft va y lo cambia de nuevo. Bueno, al menos esto es mucho más fácil: un cambio similar a la instalación de WIF. Ahora deberían agregar SQL para activar / desactivar las características de Windows.
nocarrier
@KevinBrydon - ¡Muchas gracias! Su sugerencia fue muy útil para resolver el problema en Windows 2012 R2.
Amil Waduwawara
En Windows Server 2012 R2, habilitar para mí la "Activación Http" funcionó para mí.
Dhanuka777
117

Lo arreglé en mi Windows 10:

  1. Vaya al Panel de control - Programas y características - Active o desactive las características de Windows.

  2. Seleccione .NET Framework 4.6 Servicios avanzados - Servicios WCF

  3. Verifique la activación de HTTP.

  4. OK hecho.

Quan Nguyen
fuente
55
¡Funciona para mí en Windows 10! ¡Gracias!
Sergey Malyutin
1
Funciona para mí en win 8.1 también
Qerts
Trabajó en Win10 iis7
noCodeMonkeys
Esto funciona después de actualizar a Windows 1709 y tener que reinstalar mi IIS
garrettendi
Funciona perfectamente para mí. Solución ideal si aparece "Este error ocurre cuando la extensión del archivo de la URL solicitada es para un tipo MIME que no está configurado en el servidor"
eranda.del
84

En mi caso, necesitaba agregar tipos MIME para cada extensión de archivo que quería servir a la configuración web:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>
Mahmoodvcs
fuente
2
1+ solucionó mi problema ... estaba tratando de cargar el .jsony seguía recibiendo el error OP y finalmente terminé agregando el mimeMapen mi web.config y resolví el problema
Nick Kahn
¿Necesito agregar también el tipo MIME para el archivo asmx?
Shilpa Soni
Los archivos @ShilpaSoni asmx son archivos de servidor asp.net (no contenido estático). así que no puede y no necesita descargarlos del cliente.
Mahmoodvcs
1
Y aquí hay un mapa de extensiones de archivo a su mimeType apropiado, que se encuentra en esta pregunta SO
The Red Pea
21

En caso de que esto ayude a alguien, recibí este error al intentar ejecutar aspnet_regiis.exe:

La operación falló con 0x8007000B

Se intentó cargar un programa con un formato incorrecto.

Como resultado, el servidor estaba ejecutando 2008 64 bit e intentaba ejecutar la versión de 32 bits de la utilidad. La ejecución de la versión que se encuentra en \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 solucionó el problema.

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i
Daniel
fuente
7

Acabo de tener la misma situación con mi cliente. Tenemos nuestro propio producto que instala un sitio web. El instalador configura todo: el grupo de IIS, el sitio, web.config, etc.

Instalamos otro sitio web utilizando nuestro instalador. Ingresamos los mismos parámetros, por lo que web.configs resultó ser el mismo en ambos sitios.

Sin embargo, el sitio recién instalado funcionó bien, mientras que el antiguo no. Luego abrí 2 ventanas del Administrador IIS y comencé a comparar la diferencia en la configuración del sitio web. Y encontré un problema.

Alguien eliminó todas las asignaciones de controladores con el sitio anterior. Si va a "Asignaciones de controladores", debería ver aspx, asmx y otras extensiones y nombres de los controladores. Entonces, en el sitio antiguo faltaban todos esos registros.

Por lo tanto, sugeriría que primero verifique las "asignaciones de controladores"; debe haber muchos registros allí. Cree un nuevo sitio web y compárelo para saber cuántos debería haber.

Quién los eliminó, una persona u otro programa, no tengo idea. Si alguien puede saber si existe alguna aplicación de seguimiento que indique que el dominio de usuario \ john estaba modificando el sitio web en la fecha "07.03.2012 12:34", sería útil.

Ihor B.
fuente
¿Podría haber sido una actualización de seguridad de Microsoft ?
Roman Starkov
6

Solucioné mi problema en el servidor de Windows 2012 instalando TODAS las características de WCF.

A) Administrador del servidor> Administrar [enlace arriba a la izquierda]> Agregar roles y características

B) En Características> Características de .Net Framework 4.5> Servicios WCF

C) Verifique (habilite) las características. Lo revisé todo.

D) Instalar

Demodave
fuente
2
Verifiqué solo la Activación HTTP y la Activación TCP y funcionó para mí. ¡Gracias de todos modos!
Aleksei Mialkin
6

Al ejecutar Windows Server 2008 R2 de 64 bits y .net framework 4.5, ejecuté este comando desde esta ubicación y tuve éxito:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

salida:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).
Jason Hitchings
fuente
3

Como @Mahmoodvcs mencionó, tuve que configurar / agregar tipos MIME para la extensión de archivo que necesitaba para alojar / descargar directamente, en este caso es un archivo de volcado de Heroku (copia de seguridad de la base de datos de Postgres), por lo que para configurar un servidor público IIS donde puede descargar estos archivos sin necesidad de utilizar AWS S3 bucket o recursos compartidos HTTP como Dropbox, ¡esta es una excelente opción!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>

d1jhoni1b
fuente
2

También tuve este error, en Windows Server 2008 IIS 7, no tenía instalado Visual Studio, por lo que una reinstalación / reparación de .NET 4.0 hizo el truco.

Leigh
fuente
1

Para agregar una extensión para servir en IIS, siga:

  1. Abra el Administrador de IIS y navegue hasta el nivel que desea administrar.
  2. En la Vista de características, haga doble clic en Tipos MIME.
  3. En el panel Acciones, haga clic en Agregar.
  4. En el cuadro de diálogo Agregar tipo MIME, escriba una extensión de nombre de archivo en el cuadro de texto Extensión de nombre de archivo. ... Escriba un tipo MIME
  5. en el cuadro de texto tipo MIME.
  6. Haga clic en Aceptar.
Shahadat Hossain Khan
fuente
1
Probé esta solución en el caso de .ts (archivos de tipo script) que debe declarar en los campos de mecanografiado de tipo MIME (.ts) Uso text / x.typescript como tipo mime
freedeveloper
0

Verifique que el grupo de aplicaciones en IIS (en el caso de IIS7 o superior) esté seleccionado como integrado. En este caso, probablemente cambiar a Clásico puede resolver este problema.

usuario1006743
fuente
0

En relación con el servidor 2016, debería agregar:

  1. Ejecute este comando: aspnet_regiis -lvdesde este directorio: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ esto le brinda la mejor vista de lo que está sucediendo

  2. En Server 2016, instalar .net e iis fuera de secuencia no parece ser un problema.

  3. Lo que es más probable que sea un problema en Server 2016 es simplemente que asp.net no está instalado en la máquina.

Jonesome restablecer monica
fuente
0

por Windows Server 2016

  1. Abierto Server ManagerForma
  2. Manage -> Add Roles and Features
  3. Siguiente hasta Features página
  4. Cheque WCF Services función con todas las subcaracterísticas
  5. Next y Install
Serkan Arslan
fuente
0

Aplicación PHP 7.3 IIS en Windows Server 2012 R2

Este fue un proceso de dos pasos para mí.

1) Habilite los servicios WCF - con un reinicio del servidor

2) Agregar una asignación de módulo FASTCGI

1)

Vaya a Administrador del servidor> Agregar roles y características Seleccione su servidor del grupo de servidores Vaya a Características> Servicios WCF Seleccioné todas las categorías y luego las instalé

2)

Vaya a IIS> seleccione el sitio En el panel central seleccione Asignaciones de controladores Panel derecho seleccione Agregar asignaciones de módulos

Dentro de la ventana de edición:

Ruta de solicitud: * .php

Módulo: FastCgimodule

Ejecutable: navegué a php-cgi.exe dentro de mi carpeta PHP

Nombre: PHP7.3

Ahora que lo pienso. Puede haber una manera de agregar esta asignación de controlador dentro de la configuración web, por lo que si migra su sitio a otro servidor, no tiene que agregar esta asignación una y otra vez.

EDITAR: Aquí está. Agregue esto a la sección de la configuración web.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />
Quickee
fuente
0

Si está intentando ver un archivo sin extensión, lo que funcionó para mí fue agregar una MIME Type: Extensión de nombre de archivo : . Tipo MIME :text/plain

Esto podría tener algunas implicaciones de MVC, especialmente si Static File Handlerestá por encima de los Extensionless...controladores (debajo de IIS/ Handler Mappings) pero podría ser una solución cuando solo lo necesita temporalmente, como activar SSL Certs.

Serj Sagan
fuente