File.Copy bloquea el archivo fuente después de la finalización

Estamos intentando copiar un archivo de un servidor, a una máquina local en una aplicación .NET 2.0 (C #), pero seguimos bloqueando innecesariamente el archivo fuente. Sospechamos que es algo configurado en el servidor de archivos que está causando este comportamiento, pero no estamos seguros de qué ... ¿puede ayudarme?

Después de la operación de copia de archivos, el servidor de archivos (Windows 2K3 R2) informa que el archivo de origen se mantiene con un bloqueo de lectura, a pesar de que no se realiza ninguna otra operación con el archivo en el servidor. El bloqueo se libera una vez que se cierra la aplicación.

Podemos reproducir el comportamiento, incluso con el código más básico que se ve a continuación:

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();
}

La cerradura ocurre inmediatamente durante laFile.Copy() line ejecutándose, y persiste después de que esta línea ha finalizado. En una aplicación más compleja, cuando la rutina con elFile.Copy() sale (pero la aplicación aún se está ejecutando), el bloqueo persiste.

Solo cuando se completa toda la aplicación se libera el bloqueo.

CambiandosourceFile usar una unidad asignada en lugar de una ruta UNC no hace ninguna diferencia en el comportamiento.

Este comportamiento no ocurre cuando el archivo de origen se encuentra en otro servidor o localmente.

Si agregamos la siguiente línea después de laFile.Copy, el bloqueo se libera inmediatamente:

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

Todo esto nos parece que hay algo en el servidor que está causando este comportamiento. Tenemos ShadowProtect instalado en el servidor junto con el antivirus McAfee. Aparte de eso, parece que no hay nada más instalado más allá de Windows Server y sus componentes.

Tampoco estamos seguros de por qué exigir un permiso de lectura en el archivo resuelve el problema.

Si pudiera responder estas preguntas, le agradeceríamos mucho:

¿Qué está causando que los bloqueos de archivo persistan? ¿Por qué exigir un permiso de lectura resuelve el problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta