IIS no puede atender determinadas extensiones de archivo

IIS no puede atender determinadas extensiones de archivo

Estoy sirviendo archivos .JSON, pero aunque el archivo existe, IIS sigue arrojando un error 404 cuando se accede a cualquiera de los archivos. Intenté cambiar el nombre de uno de los archivos a .JS y funciona.

¿Alguna indicación de qué configuración puede causar este problema?

Respuesta1

De forma predeterminada, IIS en W2K3 y versiones posteriores no entregará archivos que no sean del tipo MIME que conoce (en lugar de devolver errores 404).

Debe agregar un tipo MIME a IIS para permitirle servir ese tipo de archivo. Puede configurarlo a nivel de sitio o a nivel de servidor.

Para configurar esto para todo el servidor:

  • Abra las propiedades del servidor en el Administrador de IIS y haga clic en Tipos MIME.
  • Haga clic en "Nuevo". Ingrese "JSON" para la extensión y "application/json" para el tipo MIME.

Respuesta2

Yo tuve el mismo problema. IIS hace algo llamado filtrado de tipo MIME. Si no conoce el tipo MIME de una extensión de archivo específica, devuelve un error 404.

En IIS <7: Abra las propiedades del sitio (o servidor). Clickea en elEncabezado HTTPpestaña. Clickea en elTipos MIMEbotón. Agregue el tipo de archivo * con el tipo MIME "application/octet-stream".

Para IIS 7: Abra el administrador de IIS. Haga clic en elservidoro sitio web. Haga doble clic enTipos MIMEicono de función. En el panel Acciones, haga clic enAgregar. Complete el cuadro "Extensión del nombre de archivo" con * y el cuadro Tipo MIME con "application/octet-stream".

Respuesta3

Agregué tipo MIME .jsonal text/jsonsitio en IIS para verlo en el navegador como texto.

Respuesta4

Yo también tuve este problema, y ​​el problema resultó ser los permisos de archivo en la carpeta donde estaba almacenado el archivo json. respondí unpregunta similar aquí.

Todas estas personas tienen razón al decir que es necesario agregar el tipo MIME.

El tipo MIME habilita la extensión del archivo en el servidor y el controlador de mapeo le dice a IIS qué hacer con él.

Entonces también tienes queagregar el controlador de mapeo, y para eso debes tener la característica de Windows llamadaAsp clásico instaladopara manejar el mapeo.

A continuación se explica cómo agregar el controlador de mapeo:

  1. Abra el Administrador de IIS7
  2. Vaya a las propiedades del servidor IIS (o solo al sitio, si no desea una configuración global)
  3. Haga clic enHandler Mappings
  4. Haga clic enAdd a Script Map
  5. Introduzca las propiedades:
    • Ruta de solicitud:*.json
    • Ejecutable:C:\WINDOWS\system32\inetsrv\asp.dll
    • Nombre: JSON(puedes llamarlo como quieras)
  6. Haga clic en Aceptar y listo. Debería empezar a funcionar y no es necesario reiniciar IIS.

Además, algunas personas le dirán que use `application/x-javascript' como aplicación de tipo mime, pero JSON no es javascript.per se(élesun subconjunto, sin embargo), por lo que debería ser 'application/json', ya que es el tipo de medio registrado por la IANA para JSON.

información relacionada