Como dar Permissão para o ApplicationPoolIdentity no sistema de arquivos

As vezes você está fazendo um website ou sistema web em Asp.Net que precisa ler e gravar um arquivo em uma determinada pasta. Geralmente é uma subpasta do proprio aplicativo.

Quando você tenta rodar a aplicação recebe uma mensagem de erro dizendo que a aplicação não tem privilégios para gravar o dito cujo arquivo.

Geralmente, quando isso acontecia, eu ia lá nas configurações avançadas do AppPool e trocava o ApplicationPoolIdentity por NetworkService ou coisa assim, e dava permissão na pasta para o NetworkService. Afinal o AppPool cria um usuário instantâneo para o ApplicationPoolIdentity e esse cara não existe no windows, não tem como dar permissão pra ele, certo? Errado.

Propriedades do App Pool
Geralmente o usuário é ApplicationPoolIdentity

Escolha de conta de sistema
Muita gente troca para NetworkService




Você pode dar permissão para o ApplicationPoolIdentity fazendo o seguinte: na hora de escolher o nome do usuário que terá acesso a pasta da sua aplicação (lá no inetpub/wwwroot/SeuApp/ você coloca o nome do seu AppPoll prefixado de IIS AppPool\.

Por exemplo: se o nome do seu AppPool é DefaultAppPool, então o nome do usuário (em local machine) é IIS AppPool\DefaultAppPool. Se é HelDesk, então IIS AppPool\HelpDesk e assim por diante.

Na figura o nome do meu AppPool é DNN2, porque é o segundo appPool que criei para meu DotNetNuke.

permissões de acesso ao sistema de arquivos
Digite iis apppool\NomeDoPool
Quando você digita IIS AppPool\NomeDoPool o usuário não existe, mas quando você verifica o nome (check names) o nome é substituído automaticamente pelo nome do AppPool, mas se você digitar o nome do appPool direto não funciona.

Depois do check
Depois de dar um Check o nome vira o próprio appPool

Fontes
http://stackoverflow.com/questions/7334216/iis7-permissions-overview-applicationpoolidentity
https://www.iis.net/learn/manage/configuring-security/application-pool-identities
http://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permissions

Comentários

Postagens mais visitadas deste blog

Detectar o encoding de um arquivo para não corromper ao transformá-lo

erro "ora-12154: tns: não foi possível resolver o identificador de conexão especificado"

Quebras de linha no Delphi 2010