Komunikat mówi, że plik konfiguracyjny jest w jakiś sposób uszkodzony. Mówi jednak również, że nie może uzyskać dostępu do pliku konfiguracyjnego. Dlatego zignorowałbym pierwotną wiadomość o uszkodzeniu / braku ważności, ponieważ jest to najprawdopodobniej efekt niemożności odczytania pliku z powodu braku autoryzacji.
Powodem, dla którego nie może odczytać pliku konfiguracyjnego, jest to, że proces uruchamiania aplikacji internetowej nie ma uprawnień dostępu do pliku / katalogu. Musisz więc nadać procesowi uruchomionemu aplikacji internetowej te uprawnienia.
Prawa dostępu powinny być dość proste, tzn. Przynajmniej do odczytu i, w zależności od aplikacji, może do zapisu .
Powyżej wspominasz, że IUSR itp. Nie jest we właściwościach web.config
. Jeśli przez to rozumiesz, że IUSR nie jest wymieniony w zakładce bezpieczeństwa pliku, to dobrze. Nie chce się udzielać IUSR żadnego zezwolenia na web.config . Rola IUSR jest anonimowym użytkownikiem Internetu.
Plik web.config powinien być dostępny tylko za pośrednictwem aplikacji.
Problem polega na tym, że nie powiedziałeś, której wersji systemu operacyjnego i usług IIS używasz, więc trudno jest doradzić, jakie kroki podjąć.
Oznacza to, że w IIS 7.5 cytowany komunikat o błędzie może wystąpić z powodu nieprzypisania uprawnień ApplicationPoolIdentity . Twoja aplikacja internetowa należy do puli aplikacji, dlatego musisz udzielić uprawnień do konta systemu operacyjnego, na którym działa pula aplikacji. Często jest to coś w rodzaju NetworkService, ale być może dostosowałeś go do działania na specjalnie stworzonym koncie. Bez dodatkowych informacji trudno ci pomóc.
Web.config
listy ACL pliku różnią się od innych plików w katalogu i nie dziedziczą po rodzicu . Włączyłem dziedziczenie ACL i wszystko wróciło do normy.