2016-01-20 56 views
0

我已经加入了简单的指标,如:Ravendb抛出IndexCompilationException后新的索引已经添加到代码

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'。]

我使用

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服务)
  • 重命名该指数
  • 在办公室说了[诅咒]缘故出声正确的文件夹权限

任何想法如何解决这个问题?

回答

0

彻底谷歌搜索使我仅有1可能的解决方案在这里找到(其中Ayende还建议检查文件夹权限,确保没有索引服务/杀毒/备份et.c.被触碰的文件夹):https://groups.google.com/forum/#!topic/ravendb/awh7eV00QNE

OP结束通过修复此问题重新启动他的机器

This 也解决了我的问题(尽管我确实很好奇重新启动与重新启动所有服务有什么不同,et.c ...)。

我试图通过添加一个相同的documenttype + index来重新创建该bug,并且这次它正确地马上工作。唯一剩下的就是希望这不会再发生(特别是在例如生产发布期间)。

更新:这似乎只是从休眠唤醒系统(Windows 10)后,偶尔在任何我的开发机器的出现,所以另一个解决办法是不冬眠您的开发机...

相关问题