没有“write.lock”文件的“Lock获取超时异常”

时间:2016-07-09 18:44:48

标签: lucene lucene.net

我收到Lock obtain timed out异常,索引文件夹完全为空。

当我尝试使用以下代码创建索引时抛出此异常:

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

我怎么可能解决这个错误?

1 个答案:

答案 0 :(得分:2)

有几种可能的原因:

  1. 您的目录没有足够的访问权限。要解决此问题,请右键单击目录> properties> security>确保您的进程IIS_IUSRS具有权限
  2. 另一个进程是同时使用该目录。使用Lock Hunter检测正在使用此文件的进程
  3. 目录中的write.lock是一个孤立文件,最初是创建的,但由于进程被终止,它已经停留在那里。
  4. 您没有优化/提交/处置您已打开的作家
  5. 提交/处理作者:

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

    我遇到了这个问题,然后有一个IProviderContext实例没有被优化/提交/处理。

    我希望这能解决你的问题