调用RavenDb store.DatabaseCommands.GlobalAdmin.CreateDatabase()时,调用将挂起

时间:2015-04-16 20:16:21

标签: asp.net ravendb nancy

我目前正在处理的项目是使用RavenDb作为嵌入式数据存储区,在尝试调用以确保数据库存在于商店中时,我发现它已挂起。

        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调用时,该进程只是挂起而没有任何通知。我想检查以确保我没有错误地使用呼叫,或者是否有更好的呼叫。

非常感谢您提出的任何想法或建议。

1 个答案:

答案 0 :(得分:1)

虽然这个问题与NancyFX无关,但可能需要EnsureDatabaseExists方法。它会创建数据库,如果它还没有。