2008-11-20 10 views
5

Ich habe einen Komponententest, der lokal funktioniert, aber beim Hochladen auf TeamCity schlägt der Server fehl mit "Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."Bestimmen, welcher Prozess eine Sperre für eine Datei hat

  1. Bevor ich etwas im Test lese ich im Setup, wenn die Datei vorhanden ist, und wenn ja versuchen, es zu löschen. Dies scheitert mit den gleichen Fehler Nachrichten wie oben
  2. Wenn wriitng die Datei, schließe ich den Schriftsteller dann dispose davon, die ich glaube, sollte alle Ressourcen loszuwerden.

So habe ich ein paar

fragt
  1. Hat jemand ähnliche Probleme und verwalten um sie herum
  2. Wie finden programticall kann zu bekommen, was Prozess eigennützig die Datei gesperrt hat !!!

Prost

+0

möglich Duplikat von [Wie zu bestimmen, welcher Prozess eine Datei in Windows hält] (http://stackoverflow.com/questions/225802/how-to-determine-which-process-is- Halten einer Datei im Fenster –

Antwort

1

Sysinternals FileMon hat einige Informationen (nach unten scrollen), wie sie dies in älteren Windows-Versionen erreicht haben.

Process monitor ist ihre neueste Version, aber es gibt nicht viele Hinweise, wie sie es tun. Dort sind jedoch einige Knowledge-Base-Artikel verlinkt, die Sie zu diesen Informationen führen sollen.

-Adam

4

Sysinternals handle.exe ist der erste Schritt. Oder verwenden Sie Process ExplorerFind Handle or DLL. Es ist immer sicherer, den Prozess zu töten, als den Griff zu schließen.

Programmatisch geht es darum, einen Kernel-Treiber zu schreiben, der die Windows-Handle-Tabelle liest.

Verwandte Themen