A mensagem está dizendo que seu arquivo de configuração está corrompido de alguma forma. No entanto, também diz que não pode realmente acessar o arquivo de configuração. Portanto, eu ignoraria a mensagem original sobre corrupção / falta de validade, pois provavelmente é apenas o efeito de não conseguir ler o arquivo devido à falta de autorização.
O motivo pelo qual não é possível ler o arquivo de configuração é porque o processo que está executando o aplicativo da web não tem permissão para acessar o arquivo / diretório. Portanto, você precisa conceder ao processo que executa o aplicativo da web essas permissões.
Os direitos de acesso devem ser bastante diretos, ou seja, pelo menos Ler e, dependendo do seu aplicativo, talvez Escrever .
Acima, você menciona IUSR etc. não estando nas propriedades de web.config
. Se com isso você quer dizer que o IUSR não está listado na guia segurança do arquivo, é uma coisa boa. Não se quer dar ao IUSR nenhum tipo de permissão para web.config . A função IUSR é um usuário anônimo da Internet.
O arquivo web.config deve ser acessível apenas através do seu aplicativo.
O problema é que você não disse qual versão do sistema operacional e do IIS está usando, por isso é difícil aconselhar quais etapas executar.
Ou seja, no IIS 7.5, é provável que a mensagem de erro que você está citando ocorra devido ao fato de seu ApplicationPoolIdentity não ter recebido as permissões. Seu aplicativo da web pertence a um pool de aplicativos e, portanto, você precisa conceder as permissões à conta do SO em que o pool de aplicativos do aplicativo da web é executado. Geralmente, isso é algo como o NetworkService, mas você pode personalizá-lo para executar sob uma conta criada especificamente. Sem mais informações, é difícil ajudá-lo.
Web.config
ACLs do arquivo eram diferentes de outros arquivos no diretório e não estavam sendo herdadas do pai . Ativei a herança da ACL e tudo voltou ao normal.