O programa que está sendo executado em uma pasta em que uma pasta pai não está acessível não poderá usar a camada tcp

0

Essa questão levou a mim e ao nosso departamento de TI em nossa empresa muitas horas para identificar.

O problema só aparece no Windows server 2008, windows 7 e windows 8. No Windows XP ou no Windows Server 2003 não temos problemas.

Estamos tendo um programa que desenvolvemos internamente em nossa empresa. O programa funciona bem e o problema não é específico para este programa.

O programa usa o host local para se comunicar com outros programas em execução no computador usando webservices. O problema em questão é que essa comunicação não funciona se o programa estiver localizado na pasta Home do usuário.

Tendo usado muitas horas para descobrir por que isso ocorreu recentemente, percebemos que o problema desaparece se o usuário tiver acesso a todas as pastas pai no caminho UNC para o arquivo executável.

Portanto, se a unidade inicial estiver montada em H: = \ SomeServer \ hdrive $ \ SomeUser e o usuário não tem acesso a \ SomeServer \ hdrive $, então nosso programa recebe erros de TCP e os webservices não funcionam.

Se o usuário obtiver apenas a permissão "Listar conteúdo da pasta" nesse caminho, os serviços da Web funcionarão.

O programa funciona bem. Verificamos que todos os arquivos dll estão vinculados com sucesso e que nenhum outro erro ocorre.

Isso parece ser algo que o sistema operacional está fazendo. Alguém sabe por que isso acontece?

    
por Magnus Jørgensen 03.10.2013 / 14:11

1 resposta

0

No Windows 7 e superior, certas pastas são protegidas por padrão. Meu entendimento é que isso é por razões de segurança. ie. Isso torna mais difícil para o programa A modificar secretamente uma dll usada pelo programa B.

Freqüentemente, descobri que, se clicar com o botão direito do mouse no programa em questão e executar "como administrador", ele funcionará muito bem. Não tenho certeza se isso funcionaria no seu caso.

    
por 03.10.2013 / 18:59

Tags