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


Tengo el problema, que el IIS de Visual Studio Express 2013 para Web no permite la carga de *.archivos json. Al intentar cargar un *.archivo json Obtengo un 403 Forbidden y una página de ayuda como configurar el IIS permitir la carga de archivos JSON, pero no sé qué hacer con esta información / donde se encuentra el IIS.

Esta es la página de error:

Error HTTP 404.3-No se encuentra la página que está solicitando servido debido a la extensión configuración. Si la página es una script, añade un controlador. Si el archivo se debe descargar, agregue un MIME asignar.

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. Función usted está tratando de utilizar no se puede instalar. El mapa MIME apropiado no está habilitado para el sitio Web o la aplicación. (Advertencia: No crear un mapa MIME para el contenido que los usuarios no deben descargar, como .Páginas ASPX o .archivos de configuración.) Si ASP.NET no está instalado.

Cosas que puedes probar: En system.webServer / handlers: Asegúrese de que el se asigna el controlador esperado para la página actual. Presta más atención a precondiciones (por ejemplo, runtimeVersion, pipelineMode, bitness) y compárelos con la configuración de su grupo de aplicaciones. Paga extra atención a errores tipográficos en la línea del manejador esperado. Favor compruebe que la función que está intentando utilizar está instalada. Verificar que el MIMO el mapa está habilitado o agregue el mapa MIME para el sitio web usando la herramienta de línea de comandos appcmd.exe. Para establecer un tipo MIME, ejecute siguiente comando en el directorio de instalación de IIS Express: appcmd set configuración / sección: staticContent / + [FileExtension= 'string', mimeType = 'string'] La variable FileExtension string es la extensión de nombre de archivo y la variable mimeType string es la descripción del tipo de archivo. Por ejemplo, para añadir 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 esta asignación MIME es necesaria para su servidor web antes de añadirlo a la lista. Archivos de configuración como .CONFIG o páginas de scripting dinámico como .ASP or .ASPX, no debe ser descargado directamente y siempre debe ser procesado a través de un controlador. Otros archivos como archivos de base de datos o los utilizados para almacenar configuración, como .XML or .MDF, a veces se utilizan para almacenar configuración información. Determinar si los clientes pueden descargarlos tipos de archivo antes de habilitarlos. Instalar ASP.NET. Compruebe el error solicite registros de seguimiento para obtener información adicional sobre este error. Para más información, haga clic aquí.

Información de error detallada: Notificación de Módulo StaticFileModule
ExecuteRequestHandler Handler StaticFile Código de error 0x80070032 URL solicitada http: / / localhost: 64107 / Settings / Settings.json Trayectoria Física D:\GIT\RepoP_Paneon\Settings\Settings.inicio de sesión json Método Inicio de sesión Anónimo Usuario Anónimo Directorio de Seguimiento de Solicitudes
C:\Users\stefank\Documents\IISExpress\TraceLogFiles\REPOP_PANEON

Más información: Este error se produce cuando la extensión de archivo de la 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 los archivos que no son páginas de scripts dinámicos, bases de datos o archivos de configuración. Proceso los tipos de archivos que utilizan un controlador. Usted no debe permitir directa descargas de páginas de scripts dinámicos, bases de datos o archivos de configuración. Ver más información "

Author: Stefan, 2013-10-22

4 answers

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

Después de agregar la siguiente configuración:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>

Funciona como un encanto.

Ejemplo de archivo de instalación completo:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
</configuration>
 167
Author: Stefan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-03 12:04:24

Es mejor agregar la etiqueta remove en caso de que el futuro IIS tenga compatibilidad con json. Esta es mi web.sección de configuración de mimeMap.

<system.webServer>
  <staticContent>
      <remove fileExtension=".woff" />
      <remove fileExtension=".woff2" />
      <remove fileExtension=".json" />
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
      <mimeMap fileExtension=".json" mimeType="application/json" />
  </staticContent>
<system.webServer>
 14
Author: Dummy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-06 03:55:17

Es posible que necesitemos 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:

<mimeMap fileExtension=".json" mimeType="application/javascript" />

Necesito hacer esta distinción porque mi IIS local (intranet) ya tiene definido el tipo mime JSON. Así que cuando despliego a sitios web de Azure utilizo esta transformación en Web.Release.config:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" />
    </staticContent>
</system.webServer>
 6
Author: rasx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 22:35:03
  • Abra CMD con privilegios de administrador.
  • Ir a:

    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']

 5
Author: mattinsalto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-03 12:01:09