【发布时间】:2011-02-24 06:49:13
【问题描述】:
-Edit- 重要提示:我更新了代码以不使用过时的函数。现在只剩下 NoSuchDirectoryException 问题了
编辑:注意我可以通过在 winform 应用程序中创建文件夹并复制它来绕过 NoSuchDirectoryException。但是,如果我没有正确关闭,我仍然会遇到 LockObtainFailedException 问题。
我对 (Lucene.net 2.9.2)[https://svn.apache.org/repos/asf/lucene/lucene.net/tags/].它抛出一个锁异常。在四处闲逛之后,我注意到了这些事情。
- 当在 Application_Start 中调用时,我的以下代码在应用程序位中工作,我得到了 NoSuchDirectoryException。
- 不关闭编写器(因为我的代码在下面没有这样做)我将收到带有消息的 LockObtainFailedException
Lock obtain timed out: SimpleFSLock@<FULL_PATH>来自 app 或 asp.net
这些线程在生成线程时暗示它们获得的权限比我少(但是!我的主线程也有问题......),一种解决方案是模拟 IIS。我正在使用visual studios 2010。我不确定它有多成熟,但我试图模仿它失败了。
所以我的问题是,如果由于某种原因(例如断电)不关闭编写器,我如何让 lucene 创建目录而不抛出异常?
Why is my Lucene index getting locked?
Lucene.Net and I/O Threading issue
static IndexWriter writer = null;
static void lucene_init()
{
bool create = false;
//I now use a full path. I still get NoSuchDirectoryException
//string dirname = "LuceneIndex_z";
if (System.IO.Directory.Exists(dirname) == false)
create = true;
var directory = FSDirectory.GetDirectory(dirname);
var analyzer = new StandardAnalyzer();
writer = new IndexWriter(directory, analyzer, create);
}
【问题讨论】:
标签: .net asp.net lucene.net