Na verdade, o IIS AppPool \ DefaultAppPool é um usuário e você pode adicionar permissões de 'Modificar' à pasta pai para permitir que ele crie subpastas etc - tenha uma leitura de link para mais informações.
O local do crime é o WinSrv2008 com o IIS7.
Meu usuário do IIS pool está tentando criar uma pasta, mas falha. Como faço para descobrir qual usuário é?
Digamos que eu não saiba muito sobre o IIS7 e o Aspnet, mas preciso rastrear o que está acontecendo por meio de ferramentas.
Então eu atiro Sysinternals / ProcessMonitor para descobrir o que está acontecendo.
Eu acho que o Access foi negado em uma pasta exatamente como eu suspeitava. Mas qual usuário? Eu adiciono a coluna User à saída ou ProcessMonitor e ele diz IIS Apppool \ Defaultapppool em maiúsculas. Bem ... isso não é um usuário é? Se eu for para o IIS e suas configurações de Apppools e Avançadas e Modelo de Processo e Identidade, posso ver pistas sobre qual usuário é, mas isso é apenas porque eu sei IIS . E se fosse o Apache ou o LightHttpd ou o que fosse? Como vejo o usuário para dar os direitos apropriados?
Na verdade, o IIS AppPool \ DefaultAppPool é um usuário e você pode adicionar permissões de 'Modificar' à pasta pai para permitir que ele crie subpastas etc - tenha uma leitura de link para mais informações.
Por padrão, o IIS 7+ usa a conta de usuário IUSR
e a conta IIS_IUSRS
do grupo para permissões. Você precisa A) Usar uma conta nomeada ou B) dar permissão ao grupo IUSR
ou IIS_IUSRS
. O site IIS da Microsoft tem uma ótima introdução para contas internas.
A opção A é provavelmente a melhor abordagem. Você faria isso indo para o Gerenciador do IIS, Selecionando pools de aplicativos e clicando com o botão direito do mouse no pool de aplicativos que deseja modificar e selecionando "Configurações avançadas"
Uma vez nas configurações avançadas, há uma opção na área "Modelo de processo" chamada "Identidade". Você então clica na caixa ao lado desta entrada e clica nas elipses que aparecem. O menu que aparece permite que você defina uma conta personalizada para o pool de aplicativos
Você já está usando a ferramenta certa (ProcessMonitor), é só que o nome da conta parece um pouco engraçado.
'IIS Apppool \ DefaultAppPool' é de fato uma conta de usuário válida do Windows, mesmo sendo especial. Ele não tem uma senha e você não pode usá-lo para fazer logon. Ele nem é listado em nenhuma das ferramentas internas para listar contas de usuário.
No entanto, você pode atribuir permissões a ele, basta digitar o nome completo na GUI ou em 'icacls.exe'. Como você não o vê listado em nenhum lugar, geralmente adiciono esses tipos de usuários a um grupo e, em seguida, atribuo permissões ao grupo.
net localgroup groupName "IIS AppPool\Defaultapppool" /ADD
Cada pool de aplicativos do IIS que tem sua propriedade de identidade definida como 'ApplicationPoolIdentity' (o padrão no IIS8) tem uma dessas contas especiais.
O principal motivo para ter essas contas é ter a capacidade de definir permissões em uma base AppPool sem ter que gerenciar muitas contas de usuário e em vez de usar a mesma conta de usuário para todas as appPools.
Semelhante a "IIS AppPool *" são o "NT SERVICE *", que são contas de usuário para executar serviços do Windows sem gerenciá-los, mas você ainda pode atribuir permissões para esses usuários.