Ответ 1
Проблема заключалась в том, что когда я переключился на Visual Studio 2013, веб-сервер, используемый для отладки, изменился. Visual Studio 2013 по умолчанию использует IIS Express. Хотя Visual Studio 2010 SP1 поддерживает IIS Express, моя установка по-прежнему использовала сервер Visual Studio Development по умолчанию.
Как и IIS 7, Visual Studio Development Server по умолчанию не определял тип mime mp4, поэтому почему мы его явно добавили в web.config, например:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
</system.webServer>
IIS Express, с другой стороны, основан на IIS 8, а IIS 8 определяет тип mime mp4 и многие другие по умолчанию. Поэтому, когда mimeMap явно задан в файле web.config, он считается дубликатом.
Если вам не нужна поддержка IIS 7 в рабочей среде, вы можете просто полностью удалить тег mimeMap из web.config. Если вам необходимо поддерживать BOTH IIS 7 и IIS 8, вы можете сначала использовать тег remove для mimeMap, а затем установить его снова, например:
<system.webServer>
<staticContent>
<remove fileExtension=".mp4" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
</system.webServer>
В IIS 7 удаление ничего не сделает, поскольку оно еще не определено, но в IIS 8 оно удалит оригинал, чтобы новый не дублировал. Благодаря Оливеру Пайену за его пост в разнице IIS 7 и IIS 8 и устранении решения.