visual studio para descargar visual-studio-2010 iis-7 visual-studio-2013 iis-express iis-8

visual-studio-2010 - para - iis express visual studio 2017



Visual Studio 2013 muestra "No se puede agregar una entrada de colección duplicada de tipo ''mimeMap''" (3)

Tengo un sitio que se creó con Visual Studio 2010. Cuando actualicé a Visual Studio 2013, en algunas páginas recibía un error que decía:

No se puede agregar una entrada de colección duplicada de tipo ''mimeMap'' con el atributo clave único ''fileExtension'' establecido en ''.mp4''.

Después de algunas búsquedas, encontré una publicación útil en un blog, pero como el problema era un poco diferente y no lo encontré en stackoverflow, pensé en publicar la pregunta y la respuesta aquí.


El problema fue que cuando cambié a Visual Studio 2013, el servidor web utilizado para la depuración cambió. Visual Studio 2013 usa IIS Express de forma predeterminada. Aunque Visual Studio 2010 SP1 es compatible con IIS Express, mi instalación aún utilizaba el servidor de desarrollo de Visual Studio predeterminado.

Al igual que IIS 7, Visual Studio Development Server no definió el tipo mime de mp4 de manera predeterminada, por eso lo agregamos explícitamente en el archivo web.config, así:

<system.webServer> <staticContent> <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> </staticContent> </system.webServer>

IIS Express, por otro lado, se basa en IIS 8, e IIS 8 define el tipo mime de mp4, y muchos otros, de forma predeterminada. Entonces, cuando mimeMap se establece explícitamente en web.config, se considera un duplicado.

Si NO es necesario que admita IIS 7 en su entorno de producción, puede eliminar completamente la etiqueta mimeMap de la web.config. Si necesita soportar TANTO IIS 7 como IIS 8, entonces puede usar primero una etiqueta de eliminación para mimeMap y luego configurarla de nuevo, así:

<system.webServer> <staticContent> <remove fileExtension=".mp4" /> <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> </staticContent> </system.webServer>

En IIS 7, la eliminación no hará nada ya que no está definida, pero en IIS 8 eliminará el original para que el nuevo no sea un duplicado. Gracias a Oliver Payen por su publicación sobre la diferencia IIS 7 e IIS 8 y la solución de eliminación .


En mi caso, resolví el problema simplemente eliminando la línea que estaba haciendo cosas duplicadas:

<configuration> (...) <system.webServer> <staticContent> <!--mimeMap fileExtension=".json" mimeType="application/json" /--> </staticContent> </system.webServer> </configuration>


Simplemente elimine la extensión antes de agregarla.

<remove fileExtension=".mp4" /> <mimeMap fileExtension=".mp4" mimeType="video/mp4" />