mercoledì 22 febbraio 2012

Visual Studio 2010 Web Server e i MIME Type

Non si tratta di un racconto di fantasia ma del fatto che il Web Server integrato di Visual Studio 2010 è in grado di gestire un certo numero di MIME Type e basta.

Questo significa che se abbiamo la necessità di mettere nella nostra pagina web una risorsa che prevede un MIME Type particolare e, comunque, non previsto nel Web Server, non saremo in grado di visualizzarla come dovuto.

Ad esempio, supponiamo di avere la seguente pagina:

  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <title>Video MP4</title>
  5.     </head>
  6.     <body>
  7.         <video controls src="./video/oceans-clip.mp4">
  8.             Il video non supportato dal browser
  9.         </video>
  10.     </body>
  11. </html>

Se proviamo ad eseguirla (facendo attenzione che il video .mp4 sia effettivamente nella sottocartella “video”), otteniamo:

SNAGHTML41048c7

Perché questo?

Se analizziamo cosa viene inviato dal nostro server tramite l’F12 di IE9 otteniamo:

SNAGHTML413cbfa

La risorsa oceans-clip.mp4 viene restituita come application/octet-stream e non come video/mp4.

Questo perché, come già detto, il web server non dispone dell’opportuno MIME Type per interpretare correttamente l’estensione .mp4.

Per risolvere questo problema possiamo ricorrere al package NuGet MIME Helper

SNAGHTML441f7eb

che modifica il web.config

  1. <system.webServer>
  2.   <modules runAllManagedModulesForAllRequests="true" />
  3.   <staticContent>
  4.     <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  5.     <mimeMap fileExtension=".m4v" mimeType="video/m4v" />
  6.   </staticContent>
  7. </system.webServer>

e referenzia l’assembly MIMEHelper.dll che altro non fa che aggiungere un modulo che si occupa di gestire i MIME non presenti.

Per maggiori info sul package MIME Helper, fate riferimento al post di Shawn Cicoria al seguente link.

 

Tag di Technorati: ,,

Nessun commento: