Запуск RavenDB в качестве хранилища EmbeddableDocumentStore и доступ к RavenDB Management Studio
Я играю со встроенным RavenDB => RavenDB-Embedded.1.0.499
пакет, установленный через NuGet в Visual Studio 2010. Он используется в текущем проекте, который я начал после прочтения этой превосходной статьи MSDN:
Встраивание RavenDB в приложение ASP.NET MVC 3
Теперь я хотел бы получить доступ к RavenDB Management Studio (веб-интерфейс).
Я выполнил шаги, описанные здесь: Возможно ли подключиться к встроенной БД с помощью Raven Management Studio и здесь Запуск RavenDB во встроенном режиме с включенным HTTP, но я не понял этого.
Это код, который я использую для инициализации DocumentStore
:
_documentStore = new EmbeddableDocumentStore
{
ConnectionStringName = "RavenDB",
UseEmbeddedHttpServer = true
};
и это ConnectionString
присутствует в Web.config
:
<add name="RavenDB" connectionString="DataDir = ~\App_Data\Database" />
Я также прочитал шаги, описанные в RavenDB: Embedded Mode. Я попытался запустить сервер вручную:
// Start the HTTP server manually
var server = new RavenDbHttpServer(documentStore.Configuration,
documentStore.DocumentDatabase);
server.Start();
но приведенный выше код кажется устаревшим, так как у меня нет RavenDbHttpServer
, documentStore.Configuration
а также documentStore.DocumentDatabase
, Мне удалось найти Raven.Database.Server.HttpServer
но другие объекты отсутствуют в _documentStore
,
Итак, вопрос в следующем:
Как я могу использовать веб-интерфейс для визуализации документации по встроенной базе данных? Какой URL я должен указать в адресной строке браузера?
Любой совет приветствуется.
РЕДАКТИРОВАТЬ: Я нашел способ заставить его работать. Как я описал в своем блоге, это может быть не лучшим подходом, но он работает:
RavenDB встраивается с интерфейсом Management Studio
Примечание: один недостаток вышеуказанного подхода заключается в том, что я не могу получить доступ к базе данных в моем приложении, потому что, как только она была открыта сервером, она блокируется. Таким образом, я должен остановить сервер, а затем перезагрузить приложение в браузере.
Я надеюсь, что у гуру RavenDB есть лучший / правильный подход... просто дайте нам знать.
1 ответ
Мне никогда не приходилось запускать сервер вручную, чтобы получить доступ к студии управления. Единственные шаги, которые не были упомянуты в вашем вопросе, которые я обычно делаю:
// Add the following line prior to calling documentStore.Initialize()
Raven.Database.Server.NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);
копия Raven.Studio.xap
в корневую папку моего веб-проекта.
Когда мое веб-приложение работает, RavenDB Management Studio становится доступным по адресу http://localhost:8080/.