2011-05-07 19 views
36

Agregué lo siguiente al archivo web.config, pero esto parece ser ignorado por el servidor de desarrollo integrado en Visual Studio 2010. ¿Alguien sabe cómo alterar los tipos MIME? en el servidor de desarrollo?Configuración de tipos MIME mediante el servidor de desarrollo ASP.NET

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    <staticContent> 
     <mimeMap fileExtension=".mp4" mimeType="video/mp4" />   
     <mimeMap fileExtension=".ogg" mimeType="audio/ogg" />   
     <mimeMap fileExtension=".oga" mimeType="audio/ogg" />   
     <mimeMap fileExtension=".ogv" mimeType="video/ogg" />   
     <mimeMap fileExtension=".webm" mimeType="video/webm" />  
    </staticContent> 
</system.webServer> 
+0

acabo de acordar que puedo usar IIS expreso ahora en VS2010 SP1, por lo que me hizo correr. Podría haber cambiado obvio a IIS completo para resolver el problema también ... pero tengo curiosidad por ver si hay una manera de hacer que los tipos MIME funcionen con el servidor desarrollado por defecto. –

Respuesta

38

El servidor web de desarrollo integrado en Visual Studio (Cassini) no tiene conocimiento de <system.webServer>, solamente IIS7.x o IIS7.5 expreso va a consumir estos ajustes.

También los tipos de contenido de archivos estáticos en el servidor web de desarrollo de Visual Studio están codificados.

De Microsoft.VisualStudio.WebHost.Connection (desmontado utilizando .NET Reflector):

private static string MakeContentTypeHeader(string fileName) 
{ 
    string str = null; 
    FileInfo info = new FileInfo(fileName); 
    switch (info.Extension.ToLowerInvariant()) 
    { 
     case ".bmp": 
      str = "image/bmp"; 
      break; 

     case ".css": 
      str = "text/css"; 
      break; 

     case ".gif": 
      str = "image/gif"; 
      break; 

     case ".ico": 
      str = "image/x-icon"; 
      break; 

     case ".htm": 
     case ".html": 
      str = "text/html"; 
      break; 

     case ".jpe": 
     case ".jpeg": 
     case ".jpg": 
      str = "image/jpeg"; 
      break; 

     case ".js": 
      str = "application/x-javascript"; 
      break; 
    } 
    if (str == null) 
    { 
     return null; 
    } 
    return ("Content-Type: " + str + "\r\n"); 
} 

Para ser sinceros, con el advenimiento de IIS7.5 expreso que no puedo ver por qué te gustaría utilizar el built-in web servidor. Cassini puede ser la causa de tanta confusión cuando se trata del tiempo de implementación en un servidor de producción porque no se parece en nada a la situación real (seguridad, configuración, etc.) mientras que si puede hacer que su sitio se ejecute en IIS7.5 Express, entonces hay un bastante alto probabilidad de que la implementación en un servidor IIS7.5 de producción "simplemente funcione".

No me sorprendería que Microsoft haya sacado el servidor Cassini de la próxima versión de Visual Studio dado lo fácil que es ejecutarlo con IIS7.5 Express.

+6

He subido la respuesta porque es precisa, pero la odio: p Realmente no me importa andar con IIS ni nada, solo la quiero para que cuando presione el pequeño botón verde Play en VS2010, sirva PNG con el tipo MIME correcto. es mucho para preguntar? Aparentemente es ... – user435779

+2

@ user435779 - Gracias por el +1. IIS Express es bastante libre de dolor y se ejecutará al igual que Cassini. No hay problemas con la consola IIS MMC. Simplemente dígale a VS2010 que desea iniciar y depurar en IIS Express (en la pestaña Web de propiedades del proyecto) y luego presione el botón de reproducción ... VS2010 configura IIS Express para su proyecto de forma silenciosa y detrás de escena. – Kev

+0

Esta respuesta fue realmente útil. Como garantía para cualquier otra persona que haga esto: tuve que reiniciar VS después de instalar IIS y tuve un momento difícil donde VS se bloqueó después de cambiar para usar IIS Express en la configuración de mi proyecto, pero aparte de eso, fue bastante sencillo y definitivamente valió la pena. –

4

Solo tuve este problema pero tuve que encontrar la configuración para IIS Express para poder agregar los tipos de mime. Para mí, estaba ubicado en C:\Users\<username>\Documents\IISExpress\config\applicationhost.config y pude agregar el "mapa mímico" correcto allí.

+1

¡Esta reparación solo tomó unos segundos! ¡Gracias! Para cualquier otra persona que intente esto, hay una advertencia para copiar una copia de seguridad de applicationhost.config antes de comenzar a editarlo. –

0

El mismo se puede hacer mediante la modificación de los tipos MIME utilizando el Administrador de IIS como se ha mencionado - Here

Cuestiones relacionadas