2008-11-20 9 views
5

J'ai un test unitaire qui fonctionne correctement localement mais qui, une fois téléchargé sur le serveur TeamCity, échoue avec "Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus."Détermination du processus qui a un verrou sur un fichier

  1. Avant je fais quelque chose dans le test je vérifie dans la configuration si le fichier existe et si oui essayez de le supprimer. Cela échoue avec le même message d'erreur comme ci-dessus
  2. Lorsque le fichier wriitng , je ferme l'écrivain puis Éliminez ce que je crois devrait se débarrasser de toutes les ressources.

J'ai quelques requêtes

  1. Quelqu'un at-il eu des problèmes similaires et parviennent à se déplacer dans les
  2. Comment savoir programticall quel processus a égoïstement verrouillé le fichier !!!

Vive

+0

double possible de [Comment déterminer quel processus est titulaire d'un fichier dans Windows] (http://stackoverflow.com/questions/225802/how-to-determine-which-process-is- tenir-un-fichier-dans-windows) –

Répondre

1

Sysinternals FileMon a quelques informations (défiler vers le bas) sur la façon dont ils ont accompli cela dans les anciennes versions de Windows.

Process monitor est leur dernière version, mais elle ne donne pas beaucoup d'indices quant à la façon dont ils le font. Il y a quelques articles de base de connaissance liés là, cependant, qui devraient vous conduire à cette information.

-Adam

4

Sysinternals handle.exe est la première étape. Ou utilisez Process ExplorerFind Handle or DLL. Il est toujours plus sûr de tuer le processus que de fermer la poignée, cependant.

Par programme, il s'agit d'écrire un pilote noyau qui lit la table des poignées Windows.

Questions connexes