Visual Studio 2013 donne «Impossible d’append une entrée de collection en double de type« mimeMap »»

J’ai un site qui a été créé à l’aide de Visual Studio 2010. Lorsque j’ai effectué la mise à niveau vers Visual Studio 2013, sur certaines pages, une erreur m’était signalée:

Impossible d’append une entrée de collection en double de type ‘mimeMap’ avec l’atsortingbut de clé unique ‘fileExtension’ défini sur ‘.mp4’.

Après quelques recherches, j’ai trouvé un article utile sur un blog, mais comme le problème était un peu différent et que je ne l’ai pas trouvé sur stackoverflow, j’ai pensé poster la question et répondre ici.

Le problème était que lorsque je suis passé à Visual Studio 2013, le serveur Web utilisé pour le débogage a été modifié. Visual Studio 2013 utilise IIS Express par défaut. Bien que Visual Studio 2010 SP1 prenne en charge IIS Express, mon installation utilisait toujours le serveur de développement Visual Studio par défaut.

Comme IIS 7, Visual Studio Development Server ne définissait pas le type mp4 mime par défaut, c’est pourquoi nous l’avons ajouté explicitement dans le fichier web.config, comme ceci:

     

IIS Express, quant à lui, est basé sur IIS 8 et IIS 8 définit par défaut le type mime mp4 et bien d’autres. Ainsi, lorsque mimeMap est explicitement défini dans le fichier web.config, il est considéré comme un doublon.

Si vous n’avez pas besoin de prendre en charge IIS 7 dans votre environnement de production, vous pouvez simplement supprimer complètement la balise mimeMap du fichier web.config. Si vous devez prendre en charge les deux versions d’IIS 7 et IIS 8, vous pouvez d’abord utiliser une balise remove pour mimeMap, puis la définir à nouveau, comme ceci:

       

Dans IIS 7, la suppression ne fera rien car elle n’est pas déjà définie, mais dans IIS 8, elle supprimera l’original afin que le nouveau ne soit pas un doublon. Merci à Oliver Payen pour son post sur la différence IIS 7 et IIS 8 et la solution de suppression .

Il suffit de supprimer l’extension avant de l’append.

   

Dans mon cas, j’ai résolu le problème simplement en supprimant la ligne qui faisait des doublons:

   (...)