一年前,當我們開始使用RavenDB,我們很快在生產打這個錯誤:RavenDB數據庫還原:操作失敗:無法訪問文件,該文件被鎖定或正在使用
操作失敗:無法訪問文件,該文件被鎖定或正在使用
我們通過一些論壇發現,我們可以通過不運行RavenDB爲IIS網站擺脫這一點,但作爲一個服務。我們做到了,從未再次看到錯誤。到目前爲止:我正在建立一個新的環境和想法,我想讓它運行RavenDB關閉IIS,但錯誤很快又出現了。
事實和我已經試過:
- 使用自定義的應用程序池的商業許可
- 流失v.30155(稱爲RavenApplicationPool)
- 有數據文件夾從IIS分開dir(通過
Raven/WorkingDir
AppSetting) - RavenApplicationPool用戶對IIS文件夾和數據文件夾都具有「完全控制」權限
- Windows身份驗證安裝和網站
- overlapped recycle disabled啓用應用程序池
- WebDAV的發佈沒有安裝(如setup docs要求)
- 打我的鍵盤(沒有運氣)
錯誤網站運行幾分鐘後隨機發生。
C:\ RavenDBExecutables \服務器\ raven.Server.exe - 恢復源= C:\ SOME_PATH \ MY-DB-backup.raven它嘗試使用以下命令來恢復備份時也發生 - 恢復數據庫名稱=我-DB - 恢復數據庫= http://localhost:8080
(該文件夾RavenDBExecutables僅僅是二進制文件的ZIP /可執行文件et.c. - 它不與IIS網站文件夾重疊)
運行還原時,會創建以下文件夾:
- IndexDefinitions(包含了很多的.index結尾的文件)
- 指數(很多文件夾的整數名)
- 日誌(空)
- 系統(空)
- 溫度(空)
- 根文件夾(我-DB)是空的,即沒有數據文件,.resource.database或烏鴉數據。ICO與工作DB的
導入失敗後,如果我訪問http://localhost:8080/docs/Raven/Restore/Status,我得到
*很像 「複製PATH_TO_INDEX_FILE」 行,*
「ESENT恢復:失敗!無法恢復數據庫!「, 」Microsoft.Isam.Esent.Interop.EsentFileAccessDeniedException:無法訪問文件,該文件被鎖定或正在使用\ r \ n在 Microsoft.Isam.Esent.Interop.Api.Check(Int32 err)\ r \ n在 Microsoft.Isam.Esent。 Interop.Api.JetRestoreInstance(JET_INSTANCE 例如,源字符串,字符串目的地,JET_PFNSTATUS statusCallback)\ r \ n在 Raven.Database.Storage.Esent.Backup.RestoreOperation.Execute() 「 」 無法恢復數據庫不能訪問文件,該文件被鎖定或正在使用中「
那是什麼呢?
檢查您的系統事件日誌,昨天晚上我確實發生了這個錯誤,結果應用程序池沒有數據目錄的權限。 – stricq