mars
2008
Aujourd’hui j’ai tenté de lancer une application Silverlight sur le IIS de mon Vista, et là surprise, ça ne fonctionne pas, rien n’apparait.
Ni une ni deux, je recherche d’où cela peut venir (car c’est quand même embêtant), et j’ai donc trouvé la solution que je vais vous faire partager.
Comme vous le savez, Silverlight 2 apporte un nouveau modèle d’application, les ressources et le code sont packagés dans un .xap (prononcez zap).
Ces .xap ne sont rien d’autres que des .zip, vous pouvez d’ailleurs regarder ce qui se trouve dedans en renommant en .zip.
Donc pour que cela fonctionne sous IIS, il faut donc d’ajouter un type MIME pour l’extension .xap.
Sans ce type MIME votre application ne fonctionnera pas elle tentera sans succès de récupérer ce .xap, d’ailleurs si vous aussi vous essayez de le récupérer à la main vous trouverez cette jolie erreur :
Description : La page que vous avez demandée est introuvable en raison de la stratégie de mappage MIME (Multipurpose Internet Mail Extensions) configurée sur le serveur Web. La page que vous avez demandée possède une extension de nom de fichier non reconnue et non autorisée.
Il faut donc ajouter un type MIME pour l’extension .xap.
Pour ce faire, rendez-vous dans la console de IIS.
Sur le serveur (ou juste le site web si vous voulez ajouter le type MIME au niveau du site web), choisissez MIME Type, puis créez en un nouveau avec ces paramètres :
Extension : .xap
Type MIME : application/x-silverlight-app
On peut aussi réaliser ça en ligne de commande pour IIS 7 :
"%systemroot%\System32\inetsrv\appcmd" set config /section:staticContent /+[fileExtension='.xap',mimeType='application/x-silverlight']
En revanche si votre hébergeur ne vous donne pas accès à ces paramètres vous pouvez utiliser un petit hack, c’est à dire renommer votre .xap en .zip et modifier votre page HTML pour remplacer xap par zip dans la balise param tout simplement (bien que je n’ai pas réussi à faire fonctionner cette technique chez moi, ça devrait théoriquement fonctionner )
Et voilà vos applications Silverlight fonctionne désormais sous votre IIS.
A noter que sous Vista SP1 et Windows Server 2008, le type MIME est déjà présent.
Moi aussi
J’en connais d’ailleurs un à qui ça a déjà servi
Merci pour cette astuce qui va être utile à plus d’un