2011-06-08 27 views
15

Tengo un despliegue de Windows Azure (un rol web) que a petición extrae un par de archivos de video (mov y mp4) del almacenamiento azul en su poseer el almacenamiento IIS local, al que accedo a través del navegador.Windows Azure - Servir desconocido (mp4) Tipos MIME en el almacenamiento IIS de Windows Azure

Puede sonar tonto, pero tengo buenas razones para hacerlo.

Lamentablemente, no puedo acceder a los archivos mp4. Los mov están bien, pero el mp4 me da "404 - Archivo o directorio no encontrado".

He investigado esto, y parece ser porque IIS no devolverá tipos de archivos desconocidos, y mp4 debe pertenecer a esta categoría. Si fuera un servidor IIS normal, podría registrar el tipo mime de mp4, pero no sé cómo hacerlo en Windows Azure.

Pude RDP y hacerlo manualmente, pero esto no sería práctico ya que la función se reemplaza con frecuencia y significaría que tendría que volver a hacerlo manualmente cada vez. Debe hacerse a través de uno de los archivos de configuración o en código.

¿Alguien puede ayudar?

Gracias!

Steven

Respuesta

12

¿Puede usted no añada tipo MIME personalizado en web.config? Me acabo de encontrar con este enlace:

http://www.iis.net/ConfigReference/system.webServer/staticContent/mimeMap

el XML web.config relevante es:

<configuration> 
    <system.webServer> 
     <staticContent> 
     <mimeMap fileExtension=".syx" mimeType="application/octet-stream" /> 
     <mimeMap fileExtension=".tab" mimeType="text/plain" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Espero que esto ayude.

+1

Eso hizo el truco, gracias. * Hice * un montón de búsquedas en Google antes de preguntar, ¡pero debo haber estado utilizando términos de búsqueda erróneos! –

+0

¿Se puede agregar esto a app.config en lugar de web.config? –

0

Para configurar el tipo MIME, cree un nuevo archivo web.config con este contenido en la carpeta de vídeo:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Este La solución solo funciona para Azure, el proyecto local puede dejar de funcionar. Mis soluciones es utilizar "Añadir configuración Transform" para el plublication con un archivo web.config vacío para proyecto local:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
</configuration> 

Y cuando hace clic derecho sobre web.config, seleccione "Agregar Config Transform ":

enter image description here

En el archivo web.Release.config añadir esto en la etiqueta de configuración de:

<system.webServer xdt:Transform="Insert"> 
    <staticContent> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
    </staticContent> 
</system.webServer>