Запуск 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 я должен поместить в адресную строку браузера?
Любые советы приветствуются.
EDIT: Я нашел способ заставить его работать. Как я описал в своем сообщении в блоге, это может быть не лучший подход, но он работает:
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.