2016-07-09 28 views
1

我得到Lock obtain timed out異常,並且完全爲空索引文件夾。沒有「write.lock」文件的「鎖定獲取超時異常」

此異常拋出的那一刻我嘗試使用下面的代碼創建一個索引:

IndexWriter writer = new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED) 

我怎麼可能解決這個錯誤?

+0

是由同一個用戶創建的目錄嘗試打開它的過程? – AndyPook

回答

1

有幾種可能的原因:

  1. 你的目錄沒有足夠的訪問。要解決此問題,請右鍵單擊目錄>屬性>安全>確保您的進程IIS_IUSRS具有權限
  2. 另一個進程正在同時使用該目錄。使用Lock Hunter檢測使用此文件的進程
  3. 目錄中的write.lock是一個孤立文件,最初它是創建的,但是由於進程被終止,它仍停留在那裏。
  4. 你就沒有優化/ Commiting /處置你已經打開

要提交的作家/處置作家:

writer.Optimize(); 
writer.Commit(); 
writer.Dispose(); 

我當時對這個問題有哪些沒有被IProviderContext的實例優化/ COMMITED /設置。

我希望這會解決您的問題

相關問題