El mensaje dice que su archivo de configuración está dañado de alguna manera. Sin embargo, también dice que en realidad no puede acceder al archivo de configuración. Por lo tanto, ignoraría el mensaje original sobre corrupción / falta de validez, ya que probablemente sea solo el efecto de no poder leer el archivo debido a la falta de autorización.
La razón por la que no puede leer el archivo de configuración es porque el proceso que ejecuta su aplicación web no tiene permiso para acceder al archivo / directorio. Por lo tanto, debe otorgar esos permisos al proceso que ejecuta su aplicación web.
Los derechos de acceso deben ser bastante directos, es decir, al menos Leer y, según su aplicación, tal vez Escribir .
Arriba, mencionas que IUSR, etc., no está en las propiedades de web.config
. Si con eso quiere decir que IUSR no aparece en la pestaña de seguridad del archivo, entonces es algo bueno. Uno no quiere dar a IUSR ningún tipo de permiso para web.config . El rol de IUSR es un usuario anónimo de internet.
El archivo web.config debería solo ser accesible a través de su aplicación.
El problema es que no ha dicho qué versión de SO e IIS está utilizando, por lo que es difícil aconsejar qué pasos tomar.
Es decir, en IIS 7.5, es probable que aparezca el mensaje de error que está citando debido a que a su ApplicationPoolIdentity no se le asignaron los permisos. Su aplicación web pertenece a un grupo de aplicaciones y, por lo tanto, debe otorgar los permisos a la cuenta del sistema operativo con la que se ejecuta el grupo de aplicaciones de su aplicación web. A menudo, esto es algo así como NetworkService, pero es posible que lo haya personalizado para que se ejecute bajo una cuenta específica. Sin más información es difícil ayudarte.
Web.config
ACL del archivo eran diferentes a otros archivos en el directorio y no se heredaba de su padre . Permití la herencia de ACL y todo volvió a la normalidad.