我添加了最简单的索引,如下所示:
public class MyDocType_ById : AbstractIndexCreationTask<MyDocType>
{
public MyDocType_ById()
{
Map = myDocs => from mine in myDocs
select new
{
Id = mine.Id
};
Index(x => x.Id, FieldIndexing.Analyzed);
}
}
编译并点击我的网站后,我得到以下异常:
[IndexCompilationException:找不到文件'C:\ dev \ db \ ravendb \ CompiledIndexCache \ -1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll'。]
我正在使用
在我的app-startup上创建索引IndexCreation.CreateIndexes(typeof(MyDocType_ById).Assembly, IoC.Container.GetInstance<IDocumentStore>());
在文件夹中创建一个名为-1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll.cs
的文件,但不存在dll。
尝试了一些步骤:
C:\dev\db\ravendb\CompiledIndexCache\
任何想法如何解决这个问题?
答案 0 :(得分:0)
彻底的谷歌搜索引导我找到这里找到的一个可能的解决方案(Ayende也建议检查文件夹权限,确保没有索引服务/防病毒/备份et.c.正在触摸文件夹):https://groups.google.com/forum/#!topic/ravendb/awh7eV00QNE
OP最终通过重启他的机器来解决这个问题。
这个也为我解决了(虽然我很好奇重启不同于重启所有服务,等等......)。
我尝试通过添加相同的文档类型+索引来重新创建错误,这次它立即正常工作。唯一剩下的就是希望这种情况永远不会再发生(特别是在例如生产发布期间......)。
更新:只有在从休眠状态唤醒系统(Windows 10)之后,我的任何开发机器上偶尔会出现这种情况,因此另一种解决方案可能是不对您的开发机器进行休眠......