Estamos enfrentando esse problema EXATAMENTE durante a semana passada e encontramos uma solução alternativa.
Parece que o provedor de autenticação personalizado do IISManager tem alguns requisitos de permissão adicionais (não documentados) quando o IIS está no modo de configuração compartilhada (funciona bem com a configuração local).
Event Log: Application
Type: Error
Source: Microsoft-Windows-IIS-IISManager
Category:
Event: 1106
Message:
IISWMSVC_AUTHENTICATION_UNABLE_TO_READ_CONFIG
An unexpected error occurred while retrieving the authentication information.
Exception:System.Runtime.InteropServices.COMException (0x8007052E): Filename: Error:
at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) at Microsoft.Web.Management.Server.ConfigurationAuthenticationProvider.GetSection(ServerManager serverManager)
Process:dllhost Process:dllhost User=NT AUTHORITY\NETWORK SERVICE
Posso confirmar que recebemos este MESMO DEPOIS aplicamos as permissões de 'Serviço de Rede' em todo o lugar (ou seja, os seguintes comandos que já foram referidos):
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R
Além das pastas acima, adicionamos a conta 'Serviço de rede' [Permissões completas] a:
- a pasta de configuração compartilhada (e os arquivos abaixo).
- a própria pasta FTP de destino.
Nenhuma das opções acima afeta o problema.
O problema é que essa mensagem de erro é diferente da normal , como neste caso os detalhes para 'Filename:' e 'Error:' são em branco (geralmente o nome do arquivo xxx.config é listado se as permissões estiverem faltando). Então isso é outra coisa ...
Também executamos o Process Monitor e também não pudemos ver nenhuma mensagem de Access Denied. Meu pensamento é que isso é possivelmente um erro em cache de quando o processo de gerenciamento de usuário do IIS inicia pela primeira vez e tenta (e falha) para ler a configuração. Percebemos algum comportamento estranho de cache quando encontramos maneiras de fazer com que funcione ( veja abaixo ).
O avanço veio quando nós Alterou a Identidade do Processo de Extensibilidade do FTP para '{Domain} \ Administrator' , e depois de reiniciar a máquina funcionou!
Observação: o IISReset não funciona - e é isso que me leva a acreditar que há algumas coisas sendo (resilientemente) armazenadas em cache aqui.
Como mais um teste nós:
- criou uma nova conta de usuário de domínio simples (chamada ' {Domain} \ FTPService ').
- trocou a identidade do processo FTP por essa nova conta.
- aplicou as permissões apropriadas às pastas de configuração.
- Reinicializado.
Em seguida, recebemos a mesma mensagem de erro novamente (com o nome de usuário / erro em branco).
Finalmente, quando fizemos do novo usuário 'FTPService' um membro de 'Admins. do Domínio' e reinicializamos (novamente, algum cache impedindo a correção imediata) ele funciona.
Também tentamos isso no Windows 2008 / IIS7 (com o complemento FTP7.5), Windows 2008 R2 / IIS 7.5, Windows 2012 / IIS8 e Windows 2012 R2 / IIS8.5 e é o mesmo problema (e resolução ) em cada.
Portanto, parece haver algum bug ou permissão 'não documentada' necessária para que isso funcione com a Configuração Compartilhada e a conta do Serviço de Rede (sem conceder direitos Administrativos do Processo de Extensibilidade do FTP) desde o advento de FTP 7.5.
Embora seja uma solução alternativa, seria ótimo descobrir quais permissões extras são necessárias para que isso funcione com o Serviço de Rede ou com uma conta de usuário que não seja do Admin. de Domínio.