2016-07-09 9 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. あなたは処分/ライタをコミットするには

を開いた作家を配置/ /コミットの最適化されていません。

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

私はこの問題は、その後されていませんでしたIProviderContextのインスタンスを持っていました最適化/コミット/廃棄。

これがあなたの問題を解決することを願っています

関連する問題