2010-11-17 43 views
1

我有一個web應用程序,每隔10分鐘就會將數據寫入文件。強制關閉要複製的文件

我有另一個控制檯應用程序讀取文件並執行一些數據。

問題是:當控制檯應用程序嘗試複製文件時,有時文件會被Web應用程序使用。這會導致錯誤,鎖定錯誤。

我有兩個問題,我如何強制文件從另一個程序關閉,而不是在同一臺機器上?

其他與web應用有關的問題,比如說,有一段時間沒有請求到服務器,文件從不關閉。我如何確保間隔後文件關閉?後臺計時器線程?

編輯:OS是窗口2003服務器。

有什麼建議嗎?

+0

除非您聲明您正在運行的操作系統,否則您將無法獲得對第一個問題的明確答案。據我所知,如果Windows下的某個文件被另一個進程打開,則無法關閉這個文件,除非要殺死其他進程......但是我可能是錯的,而且我不知道可能會或可能不會例如,在各種Unix實現上工作。 – mjfgates 2010-11-17 02:55:11

回答

0

如果您的程序「使用數據執行某些操作」實際上並未修改文件,那麼您可以將其以只讀方式打開並避免整個鎖定情況。你需要寫入權限嗎?

您可以通過編寫會話計數功能來跟蹤您的會話。當會話數量達到零時,您可以關閉文件。如果您向我們提供有關您正在嘗試執行的操作的更多信息,這將有所幫助,因此我們知道該程序的流程。

使用Session_Start和Session_OnEnd跟蹤會話。這site有關如何跟蹤會話的好文章。

+0

會話.... – DarthVader 2010-11-17 16:28:33