В сообщении говорится, что ваш файл конфигурации каким-то образом поврежден. Однако он также говорит, что не может получить доступ к файлу конфигурации. Поэтому я бы проигнорировал исходное сообщение о повреждении / недействительности, поскольку это, скорее всего, просто эффект невозможности прочитать файл из-за отсутствия авторизации.
Причина, по которой он не может прочитать файл конфигурации, заключается в том, что процесс, выполняющий ваше веб-приложение, не имеет разрешения на доступ к файлу / каталогу. Таким образом, вам нужно предоставить процессу, выполняющему ваше веб-приложение, эти разрешения.
Права доступа должны быть довольно простыми, то есть, по крайней мере, Чтение , и, в зависимости от вашего приложения, возможно, Написать .
Выше вы упомянули IUSR и т. Д., Не находящиеся в свойствах для web.config
. Если под этим вы подразумеваете, что IUSR не указан на вкладке безопасности файла, то это хорошо. Никто не хочет давать IUSR какое-либо разрешение на web.config . Роль IUSR является анонимным интернет-пользователем.
Файл web.config должен быть доступен только через ваше приложение.
Проблема в том, что вы не сказали, какую версию ОС и IIS вы используете, поэтому трудно посоветовать, какие шаги предпринять.
То есть в IIS 7.5 сообщение об ошибке, которое вы цитируете, вероятно, возникает из-за того, что ApplicationPoolIdentity не были назначены разрешения. Ваше веб-приложение относится к пулу приложений, поэтому вам необходимо предоставить разрешения учетной записи ОС, под которой запускается пул приложений вашего веб-приложения. Часто это что-то вроде NetworkService, но вы можете настроить его для работы под специально созданной учетной записью. Без дополнительной информации вам сложно помочь.
Web.config
ACL файла отличаются от других файлов в каталоге, и он не наследуется от своего родителя . Я включил наследование ACL и все вернулось на круги своя.