Для меня проблема была в теге :
<location path="." inheritInChildApplications="false">
Профилировщик проигнорировал его во время изменений Web.config и добавил дубликаты разделов, которые уже были определены в теге location . Поэтому полученный IIS файл Web.config считался поврежденным, и возвращалась ошибка 500.
Общий подход как определить корень проблемы: когда Профилировщик изменил конфигурацию и до сгенерированного исключения (около 1 секунды), вы можете увидеть измененный Web.config в папка вашего проекта (рядом с вновь созданной резервной копией исходного файла). В настоящее время вам нужно «перехватить» (скопировать и вставить) измененный файл Web.config, а затем использовать его как обычный файл конфигурации в вашем проекте. Теперь, когда вы открываете свой проект в браузере, IIS покажет, что именно не так (подробности об исключении «500»).