2013-09-27 112 views
0

我們有2個遺留系統 - 一個在C++和其他在C#連接到同一access database。該access database是沒有密碼保護,我們使用以下連接字符串來連接數據庫問題與Microsoft Access

Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False ;Data Source= AlarmHistory.mdb 

C#申請調查表數據庫中的每個10秒。一旦在一段時間,與錯誤消息C#應用程序崩潰 -

System.Data.OleDb.OleDbException: Cannot start your application. The workgroup information file is missing or opened exclusively by another user. 

日誌分析表明,無論是應用程序不能同時訪問數據庫...什麼可能會導致這種情況的任何想法...請幫助

+2

而不是檢查應用程序日誌使用像procmon中的一個工具,真正檢查文件是否在被其他用戶使用。應用程序可能會報告它已完成數據庫工作,但仍然保持文件句柄處於打開狀態。 –

回答

-1

他們可能不會恰好同時訪問數據庫,但錯誤信息表明,他們(或別的東西)是在同一時間訪問鎖定文件。投票是否每次開啓和關閉連接?你可以移動的開放,從而使連接打開關閉到計時器外,並保持開放的應用程序的生命。

+0

並確保文件始終被鎖定????? –

+0

文件不會被鎖定,它只是簡單地專門創建過程中鎖定。所以通過保持連接打開,鎖定文件將不會繼續被創建和銷燬。 – Makita