Lucene.NET ObjectDisposedException при поиске - PullRequest
2 голосов
/ 04 мая 2011

У меня есть приложение, которое использует Lucene.Net для поиска.
Существует служба Windows, которая создает индекс, а затем приложение ASP.NET создает IndexSearcher для поиска в индексе.

Теперь я постоянно получаю следующую трассировку / ошибку стека при попытке выполнить поиск. Я не могу отладить его, потому что он развернут на производстве.

System.ObjectDisposedException: Cannot access a closed file.
 at System.IO.__Error.FileNotOpen()
 at System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin)
 at Lucene.Net.Store.SimpleFSDirectory.SimpleFSIndexInput.ReadInternal(Byte[] b, Int32 offset, Int32 len)
 at Lucene.Net.Store.BufferedIndexInput.ReadBytes(Byte[] b, Int32 offset, Int32 len, Boolean useBuffer)
 at Lucene.Net.Index.CompoundFileReader.CSIndexInput.ReadInternal(Byte[] b, Int32 offset, Int32 len)
 at Lucene.Net.Store.BufferedIndexInput.Refill()
 at Lucene.Net.Store.BufferedIndexInput.ReadByte()
 at Lucene.Net.Store.IndexInput.ReadVInt()
 at Lucene.Net.Index.TermBuffer.Read(IndexInput input, FieldInfos fieldInfos) 
 at Lucene.Net.Index.SegmentTermEnum.Next()
 at Lucene.Net.Index.SegmentTermEnum.ScanTo(Term term) 
 at Lucene.Net.Index.TermInfosReader.Get(Term term, Boolean useCache) 
 at Lucene.Net.Index.TermInfosReader.Terms(Term term) 
 at Lucene.Net.Index.SegmentReader.Terms(Term t) 
 at Lucene.Net.Index.DirectoryReader.MultiTermEnum..ctor(IndexReader topReader, IndexReader[] readers, Int32[] starts, Term t) 
 at Lucene.Net.Index.DirectoryReader.Terms(Term term) 
 at Lucene.Net.Search.WildcardTermEnum..ctor(IndexReader reader, Term term) 
 at Lucene.Net.Search.WildcardQuery.GetEnum(IndexReader reader) 
 at Lucene.Net.Search.MultiTermQuery.ConstantScoreAutoRewrite.Rewrite(IndexReader reader, MultiTermQuery query) 
 at Lucene.Net.Search.MultiTermQuery.Rewrite(IndexReader reader) 
 at Lucene.Net.Search.WildcardQuery.Rewrite(IndexReader reader) 
 at Lucene.Net.Search.BooleanQuery.Rewrite(IndexReader reader) 
 at Lucene.Net.Search.IndexSearcher.Rewrite(Query original) 
 at Lucene.Net.Search.Query.Weight(Searcher searcher) 
 at Lucene.Net.Search.Searcher.CreateWeight(Query query) 
 at Lucene.Net.Search.Searcher.Search(Query query, Filter filter, Int32 n, Sort sort)
...