Posted by: Sr Coelho | 07/07/2011

Access to the path ‘…’ is denied

Finalmente algo sobre programação nesse blog heim? Vamos lá.

Problema:

Em uma aplicação ASP .NET, ao tentar baixar um arquivo, no caso manuais em PDF, a mensagem de acesso negado é exibida: Access to the path ‘…’ is denied

O código para baixar o arquivo está da seguinte forma:

Dim fs As FileStream
Dim strPath = ConfigurationManager.AppSettings("manualpath")

fs = File.Open(strPath & strFileName, FileMode.Open)
Dim bytBytes(fs.Length) As Byte
fs.Read(bytBytes, 0, fs.Length)
fs.Close()

Response.AddHeader("Content-disposition", "attachment; filename= strFileName)
Response.ContentType = "application/octet-stream"
Response.BinaryWrite(bytBytes)
Response.End()

O web.config está configurado com impersonate, para alterar o usuário que roda a aplicação:

<identity impersonate="true"; userName="SrCoelho"; password="******"/>;

———————————————————————————————-

Solução:

Depois de muito procurar a solução para o problema acima, só consegui encontrar posts e soluções pela metade, ou até mesmo que não funcionavam. Isso procurando em inglês, pois em português é praticamente zero a chance de achar alguma coisa. Portanto resolvi colaborar com a comunidade brasileira e compartilhar a solução que eu não encontrei na net.

O usuário especificado no impersonate (SrCoelho) deve ter permissão de leitura em todas as pastas da aplicação, até aí nada de novidade, porém na pasta onde estão os manuais em PDF o usuário deve possuir a permissão de escrita (write).

Pronto, resolvido! Horas de trabalho e pesquisa na internet resolvidos em 2 ou 3 cliques. Fácil não? É só saber onde clicar. Não é atoa que conhecimento cu$ta caro.


Sr. Coelho.

Gostou? Visite Artigos do Sr. Coelho para mais dicas.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: