调用 RavenDb store.DatabaseCommands.GlobalAdmin.CreateDatabase() 时,调用挂起
When calling RavenDb store.DatabaseCommands.GlobalAdmin.CreateDatabase() the call hangs
我目前正在进行的项目正在使用 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 调用时,进程就挂起而没有任何通知。我想检查一下以确保我没有错误地使用呼叫,或者是否有更好的呼叫。
如果您能提供任何想法或建议,我们将不胜感激。
虽然问题与NancyFX无关,但可能你需要EnsureDatabaseExists方法。它将创建数据库,如果它还没有的话。
我目前正在进行的项目正在使用 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 调用时,进程就挂起而没有任何通知。我想检查一下以确保我没有错误地使用呼叫,或者是否有更好的呼叫。
如果您能提供任何想法或建议,我们将不胜感激。
虽然问题与NancyFX无关,但可能你需要EnsureDatabaseExists方法。它将创建数据库,如果它还没有的话。