Запуск RavenDB в качестве хранилища EmbeddableDocumentStore и доступ к RavenDB Management Studio - PullRequest
15 голосов
/ 13 ноября 2011

Я играю со встроенным пакетом 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: встроенный режим . Я попытался запустить сервер вручную:

// 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 Embedded с пользовательским интерфейсом Management Studio

Примечание. Одним из недостатков вышеупомянутого подхода является то, что я не могу получить доступ к базе данных в моем приложении, потому что после ее открытия сервером она блокируется. Таким образом, я должен остановить сервер и перезагрузить приложение в браузере.

Я надеюсь, что у гуру RavenDB есть лучший / правильный подход ... просто дайте нам знать.

1 Ответ

12 голосов
/ 14 ноября 2011

Мне никогда не приходилось запускать сервер вручную, чтобы получить доступ к студии управления. Единственные шаги, которые не были упомянуты в вашем вопросе, которые я обычно делаю:

// Add the following line prior to calling documentStore.Initialize()
Raven.Database.Server.NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);

Скопируйте Raven.Studio.xap в корневую папку моего веб-проекта.

Когда мое веб-приложение работает, RavenDB Management Studio становится доступным по адресу http://localhost:8080.

...