2008-11-20 16 views
5

Tengo una prueba de unidad que funciona bien localmente pero cuando se carga en TeamCity el servidor de compilación falla con "El proceso no puede acceder al archivo porque lo está usando otro proceso".Determinar qué proceso tiene un bloqueo en un archivo

  1. Antes de hacer cualquier cosa en la Prueba puedo comprobar en la configuración si existe el archivo y si es así tratar de eliminarlo. Esta falla con el mismo mensaje de error que el anterior
  2. Cuando wriitng el archivo , cierro el escritor entonces disponer de él que creo que debe deshacerse de los recursos.

Así que tengo un par de consultas de

  1. alguien ha tenido problemas similares y gestionar para obtener alrededor de ellos
  2. ¿Cómo se puede averiguar lo que programticall proceso ha bloqueado el archivo egoístamente !!!

Saludos

+0

posible duplicado de [Cómo determinar qué proceso está llevando a cabo un archivo en Windows] (http://stackoverflow.com/questions/225802/how-to-determine-which-process-is- holding-a-file-in-windows) –

Respuesta

1

Sysinternals FileMon tiene algo de información (desplácese hacia abajo) sobre cómo lo lograron en versiones anteriores de Windows.

Process monitor es su última versión, pero no da muchas pistas sobre cómo lo hacen. Sin embargo, hay algunos artículos de la base de conocimiento vinculados que deberían llevarlo a esta información.

-Adam

4

Sysinternals handle.exe es el primer paso. O use Process Explorer 's Find Handle or DLL. Siempre es más seguro que matar el proceso que cerrar el controlador.

Programáticamente, se trata de escribir un controlador del kernel que lea la tabla de control de Windows.

Cuestiones relacionadas