将新索引添加到代码后,Ravendb 抛出 IndexCompilationException
Ravendb throws IndexCompilationException after new index has been added to code
我添加了最简单的索引,如下所示:
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: Could not find file 'C:\dev\db\ravendb\CompiledIndexCache\-1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll'.]
我正在使用
在我的应用启动时创建索引
IndexCreation.CreateIndexes(typeof(MyDocType_ById).Assembly, IoC.Container.GetInstance<IDocumentStore>());
在文件夹中创建了一个名为 -1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll.cs
的文件,但 dll 不存在。
尝试的步骤:
- 确保
C:\dev\db\ravendb\CompiledIndexCache\
上的正确文件夹权限
- iisreset + 重启ravendb(Windows服务)
- 重命名索引
- 为了 [CURSE] 在办公室大声说
有什么解决办法吗?
彻底的谷歌搜索让我在这里找到了 1 个可能的解决方案(Ayende 还建议检查文件夹权限,确保没有索引 service/antivirus/backup et.c。正在触摸文件夹):https://groups.google.com/forum/#!topic/ravendb/awh7eV00QNE
OP 最终通过重新启动他的机器 解决了这个问题。
这个 也为我解决了这个问题(虽然我确实很好奇重新启动与重新启动所有服务有何不同,et.c...)。
我试图通过添加相同的文档类型 + 索引来重现错误,这次它立即正常工作。唯一剩下的就是希望这种情况永远不会再次发生(尤其是在生产发布期间……)。
更新:这似乎偶尔会发生在我的任何 dev-machines 系统从休眠状态唤醒后 (Windows 10),所以另一个解决方案可能是不休眠你的 dev-machine...
我添加了最简单的索引,如下所示:
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: Could not find file 'C:\dev\db\ravendb\CompiledIndexCache\-1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll'.]
我正在使用
在我的应用启动时创建索引IndexCreation.CreateIndexes(typeof(MyDocType_ById).Assembly, IoC.Container.GetInstance<IDocumentStore>());
在文件夹中创建了一个名为 -1836739954.u6DpcVRxqMXarC7cwg26Jg%3d%3d.nodebug.dll.cs
的文件,但 dll 不存在。
尝试的步骤:
- 确保
C:\dev\db\ravendb\CompiledIndexCache\
上的正确文件夹权限
- iisreset + 重启ravendb(Windows服务)
- 重命名索引
- 为了 [CURSE] 在办公室大声说
有什么解决办法吗?
彻底的谷歌搜索让我在这里找到了 1 个可能的解决方案(Ayende 还建议检查文件夹权限,确保没有索引 service/antivirus/backup et.c。正在触摸文件夹):https://groups.google.com/forum/#!topic/ravendb/awh7eV00QNE
OP 最终通过重新启动他的机器 解决了这个问题。
这个 也为我解决了这个问题(虽然我确实很好奇重新启动与重新启动所有服务有何不同,et.c...)。
我试图通过添加相同的文档类型 + 索引来重现错误,这次它立即正常工作。唯一剩下的就是希望这种情况永远不会再次发生(尤其是在生产发布期间……)。
更新:这似乎偶尔会发生在我的任何 dev-machines 系统从休眠状态唤醒后 (Windows 10),所以另一个解决方案可能是不休眠你的 dev-machine...