Permitir la carga de archivos JSON en Visual Studio Express 2013 para la Web

Tengo el problema, que el IIS de Visual Studio Express 2013 para Web no permite la carga de archivos * .json. Cuando trato de cargar un archivo * .json obtengo un 403 Forbidden y una página de ayuda sobre cómo configurar el IIS permite la carga de archivos JSON, pero no sé qué hacer con esta información / dónde está ubicado el IIS.

Esta es la página de error:

HTTP Error 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.

Causas más probables: es posible que falte una asignación de controlador. De forma predeterminada, el controlador de archivos estáticos procesa todo el contenido. Es posible que la característica que está tratando de usar no esté instalada. El mapa MIME apropiado no está habilitado para el sitio web o la aplicación. (Advertencia: no cree un mapa MIME para contenido que los usuarios no deberían descargar, como páginas .ASPX o archivos .config). Si ASP.NET no está instalado.

Cosas que puede intentar: en system.webServer / handlers: asegúrese de que se asigna el controlador esperado para la página actual. Preste especial atención a las condiciones previas (por ejemplo, runtimeVersion, pipelineMode, bitness) y compárelas con las configuraciones para su grupo de aplicaciones. Preste especial atención a los errores tipográficos en la línea de controlador esperado. Verifique que la característica que está tratando de usar esté instalada. Verifique que el mapa MIME esté habilitado o agregue el mapa MIME para el sitio web con la herramienta de línea de comandos appcmd.exe. Para establecer un tipo MIME, ejecute el siguiente comando en el directorio de instalación de IIS Express: appcmd set config / section: staticContent / + [fileExtension = ‘string’, mimeType = ‘string’] La variable fileExtension es la extensión de nombre de archivo y el variable mimeType string es la descripción del tipo de archivo. Por ejemplo, para agregar un mapa MIME para un archivo que tiene la extensión “.xyz”: appcmd set config / section: staticContent /+[fileExtension=’.xyz’,mimeType=’text/plain ‘] Advertencia: asegúrese de que este La asignación MIME es necesaria para su servidor web antes de agregarlo a la lista. Los archivos de configuración como .CONFIG o las páginas de scripts dynamics como .ASP o .ASPX no se deben descargar directamente y siempre se deben procesar a través de un controlador. Otros archivos, como archivos de bases de datos o aquellos utilizados para almacenar configuraciones, como .XML o .MDF, a veces se usan para almacenar información de configuración. Determine si los clientes pueden descargar estos tipos de archivos antes de habilitarlos. Instala ASP.NET. Compruebe los registros de seguimiento de solicitudes fallidas para obtener información adicional sobre este error. Para más información, haga clic aquí.

Información detallada del error: Notificación del Módulo StaticFileModule
ExecuteRequestHandler Handler StaticFile Código de error 0x80070032 URL solicitada http: //localhost:64107/Settingss.Settings.json Ruta física D: \ GIT \ RepoP_Paneon \ Settings \ Settings.json Método de inicio de sesión Usuario de inicio de sesión anónimo Anónimo Solicitud de directorio de seguimiento
C: \ Users \ stefank \ Documents \ IISExpress \ TraceLogFiles \ REPOP_PANEON

Más información: este error ocurre cuando la extensión de archivo de la URL solicitada es para un tipo MIME que no está configurado en el servidor. Puede agregar un tipo MIME para la extensión de archivo para archivos que no sean páginas dinámicas de scripting, base de datos o archivos de configuración. Procese esos tipos de archivos usando un controlador. No debe permitir descargas directas de páginas de scripts dynamics, bases de datos o archivos de configuración. Ver más información »

Después de buscar en Google y experimentar, descubrí que tienes que definir la configuración de IIS en Web.config .

Después de agregar la siguiente configuración:

       

funciona a las mil maravillas.

Ejemplo de archivo de configuración completo:

            

Mejor agregar la etiqueta de eliminación en caso de que el futuro IIS tenga comstackción en el soporte json. Esta es mi sección web.config de mimeMap.

           

Es posible que tengamos que distinguir el entorno de desarrollo de Visual Studio (con IIS Express) de IIS local y un servidor remoto (como Azure WebSites). Para apuntar específicamente a IIS Express, por ejemplo, editamos %USERPROFILE%\Documents\IISExpress\config\applicationhost.config en system.webServer/staticContent :

  

Necesito hacer esta distinción porque mi IIS local (intranet) ya tiene definido el tipo de mime JSON. Entonces, cuando despliegue en los sitios web de Azure, uso esta transformación en Web.Release.config :

      
  • Abra CMD con privilegios de administrador.
  • Ir:

    cd C:\Program Files\IIS Express o
    cd C:\Program Files (x86)\IIS Express

  • Ejecutar comando:

    appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript']