首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不回收应用程序池的情况下重新读取ASP.NET MVC web应用程序使用的文件?

问如何在不回收应用程序池的情况下重新读取ASP.NET MVC web应用程序使用的文件?
EN

Stack Overflow用户
提问于 2010-07-30 17:18:14
回答 1查看 82关注 0票数 0

我正在测试Lucene MVC web应用程序,我使用的是ASP.NET索引文件。对于每次测试,我都需要重建Lucene索引,然后强制我的web应用程序重新读取这些索引文件。我发现的唯一方法是回收应用程序池,但它相当慢。

有没有人知道一种不用回收应用程序池就能从光盘中重新读取文件的方法?

EN

回答 1

Stack Overflow用户

发布于 2010-08-02 22:20:58

在执行测试时,您可能没有对使用的IndexWriter/Reader/Searcher调用Close。如果您没有这样做,而您使用的是FSDirectory类(它代表一个文件系统),那么就会创建锁文件,从而阻止打开目录中的索引。

确保使用try/finally块来确保对象是关闭的。

我个人创建了一个扩展方法,它接受一个对象并返回一个IDisposable实现,当Dispose被调用时,它将调用Close,允许它在使用语句时使用(我在类型上使用反射来获取Close方法,然后我生成一个在Dispose方法中调用的λ表达式)。

  • 访问索引的测试是同步运行的,因此它们不会尝试打开锁定的目录

或

  • 为所有与搜索相关的测试提供一个测试类,并处理索引的打开和关闭,无论您的测试工具存在何种设置和销毁机制。您还应该在设置中填充索引(不要将其作为测试用例之一,否则将出现同步问题)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3370139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档