File.Copy bloqueia o arquivo de origem após a conclusão

Estamos tentando copiar um arquivo de um servidor, para uma máquina local em um aplicativo .NET 2.0 (C #), mas continuamos tendo o arquivo de origem desnecessariamente bloqueado. Suspeitamos que algo configurado no servidor de arquivos esteja causando esse comportamento, mas não temos certeza do que ... você pode ajudar?

Após a operação de cópia do arquivo, o servidor de arquivos (Windows 2K3 R2) informa que o arquivo de origem está sendo retido com um bloqueio de leitura, mesmo que nenhuma outra operação seja feita com o arquivo no servidor. O bloqueio é liberado quando o aplicativo é encerrad

Somos capazes de reproduzir o comportamento, mesmo com o código mais básico visto abaixo:

static void Main(string[] args)
{
    string sourceFile = @"\\win2K3server\resource\Production\IQE\sourceFolder\iqeconsole.exe";
    string destinationFile = @"d:\destinationFolder\iqeconsole.exe";
    System.IO.File.Copy(sourceFile,destinationFile,true);

    Console.ReadLine();
}

O bloqueio ocorre imediatamente durante oFile.Copy() linha em execução e persiste após o término desta linha. Em um aplicativo mais complexo, quando a rotina com oFile.Copy() sai (mas o aplicativo ainda está sendo executado), o bloqueio persist

Somente quando o aplicativo inteiro estiver concluído, o bloqueio será liberad

ChangingsourceFile usar uma unidade mapeada em vez de um caminho UNC não faz diferença para o comportament

Este comportamento não ocorre quando o arquivo de origem está localizado em outro servidor ou localment

Se adicionarmos a seguinte linha após oFile.Copy, o bloqueio é liberado imediatamente:

new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.Read, new string[] { sourceFile }).Demand();

Isso tudo nos parece que há algo no servidor que está causando esse comportamento. Temos o ShadowProtect instalado no servidor junto com o antivírus McAfee. Além disso, parece que não há mais nada instalado além do Windows Server e seus componente

Também não sabemos ao certo por que exigir uma permissão de leitura no arquivo resolve o problem

Se você pudesse responder a essas perguntas, agradeceríamos muito:

O que está causando a persistência dos bloqueios de arquivo?Por que exigir uma permissão de leitura resolve o problem

questionAnswers(2)

yourAnswerToTheQuestion