2015-04-16 113 views
0

我目前正在使用的項目是使用RavenDb作爲嵌入式數據存儲,同時嘗試調用以確保數據庫存在於存儲中,我發現它掛起。調用RavenDb store.DatabaseCommands.GlobalAdmin.CreateDatabase()時,調用掛起

 var docStore = new EmbeddableDocumentStore() 
      { 
       DataDirectory = "Data", 
      }; 

     docStore.Initialize(); 

     // Check to make sure that the database exists 
     bool bcDatabaseExists = docStore.DatabaseCommands.GlobalAdmin.GetDatabaseNames(1024).Contains(DatabaseName); 
     if (!bcDatabaseExists) 
     { 
      Dictionary<string, string> settings = new Dictionary<string, string>(); 

      DatabaseDocument databaseDocument = new DatabaseDocument() 
      { 
       Id = DatabaseName, 
       Settings = 
       { 
        { "Raven/DataDir", "~\\Data" } 
       } 
      }; 

      try 
      { 
       docStore.DatabaseCommands.GlobalAdmin.CreateDatabase(databaseDocument); 
      } 
      catch (Exception ex) 
      { 
       log.Error(ex); 
      } 
     } 

但是,當我點擊CreateDatabase調用過程只是掛起沒有任何通知。我想檢查以確保我沒有錯誤地使用該電話,或者如果有更好的電話。

任何想法或建議,你可以提供將不勝感激。

+0

你正在使用什麼構建?在什麼環境下? –

+0

上述代碼適用於使用3.0.3660的控制檯應用程序,但由於帖子標記爲'nancy',我想這正是OP所使用的。我很難用南希測試這個... –

回答

1

雖然問題與NancyFX無關,可能您需要EnsureDatabaseExists方法。它會創建數據庫,如果它還沒有。

+0

不知道爲什麼EnsureDatabaseExists工作和CreateDatabase不,但這解決了我的問題......謝謝。 – punkcoder