2016-01-20 43 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)後,偶爾在任何我的開發機器的出現,所以另一個解決辦法是不冬眠您的開發機...