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