2008-11-20 38 views
5

我有一個單元測試,本地工作正常,但當上傳到的TeamCity構建服務器失敗,鎖定「因爲它正在使用由另一個進程的進程無法訪問該文件。」確定哪個進程上的一個文件

  1. 之前,我在測試 做任何事情,我檢查設置,如果該文件存在 如果是這樣嘗試將其刪除。 這種失敗,出現相同的錯誤 消息如上
  2. 當wriitng的 文件,我關閉編寫然後 處置它,我認爲應該 擺脫任何資源。

所以我有一對夫婦查詢

  1. 有沒有人有類似的問題,並設法讓他們周圍
  2. 如何找出programticall什麼 過程自私鎖定 文件!

乾杯

+0

可能重複[如何確定哪些進程正在舉行Windows中的文件(http://stackoverflow.com/questions/225802/how-to-determine-which-process-is-拿着-A-文件的窗口) – 2012-06-13 11:51:40

回答

1

的Sysinternals FileMon有一些信息(向下滾動)他們是如何做到了這一點在較早的Windows版本。

Process monitor是他們最新的版本,但它並沒有給許多線索,他們是如何做到這一點。雖然有一些知識庫文章鏈接在那裏,但應該引導您閱讀這些信息。

- 亞當

4

的Sysinternals handle.exe是第一步。或者使用Process ExplorerFind Handle or DLL。儘管如此,通過殺死進程比關閉句柄更安全。

編程,這是寫一個內核驅動程序,讀取Windows的句柄表的問題。

相關問題