2011-11-13 6 views
15

Gram z osadzonym pakietem RavenDB =>RavenDB-Embedded.1.0.499 instalowanym przez NuGet w Visual Studio 2010. Jest on używany w bieżącym projekcie, który rozpocząłem po przeczytaniu tego świetnego artykułu MSDN:Uruchamiam RavenDB jako EmbeddableDocumentStore i korzystam z RavenDB Management Studio

Embedding RavenDB into an ASP.NET MVC 3 Application

teraz chciałbym przejść do RavenDB Management Studio (Web UI).

Wykonałem opisane tu czynności: Is it possible to connect to an embedded DB with Raven Management Studio i tutaj Running RavenDB in embedded mode with HTTP enabled, ale nie zrozumiałem.

Jest to kod używam do zainicjowania DocumentStore:

_documentStore = new EmbeddableDocumentStore 
      { 
       ConnectionStringName = "RavenDB", 
       UseEmbeddedHttpServer = true 
      }; 

i to jest ConnectionString obecny w Web.config:

<add name="RavenDB" connectionString="DataDir = ~\App_Data\Database" /> 

Czytałem również kroki opisane w RavenDB: Embedded Mode. Próbowałem uruchomić serwer ręcznie:

// Start the HTTP server manually 
var server = new RavenDbHttpServer(documentStore.Configuration, 
documentStore.DocumentDatabase); 

server.Start(); 

ale powyższy kod wydaje się nieaktualne, ponieważ nie mam RavenDbHttpServer, documentStore.Configuration i documentStore.DocumentDatabase. Udało mi się znaleźć Raven.Database.Server.HttpServer, ale brakuje innych obiektów w _documentStore.

Więc pytanie brzmi:

Jak mogę uderzyć interfejs WWW do wizualizacji moje dokumenty osadzone bazy danych? Jaki adres URL powinienem umieścić w pasku adresu przeglądarki?

Każda rada jest doceniana.

EDYCJA: Znalazłem sposób na uzyskanie go do pracy. Jak opisałem w moim blogu to może nie być najlepszym rozwiązaniem, ale to działa:

RavenDB Embedded with Management Studio UI

Uwaga: jeden Wadą powyższego podejścia jest to, że nie jestem w stanie uzyskać dostęp do bazy danych w moim app ponieważ po otwarciu przez serwer zostanie zablokowany. W ten sposób muszę zatrzymać serwer, a następnie ponownie załadować aplikację w przeglądarce.

Mam nadzieję, że guru RavenDB ma lepsze/poprawne podejście ... daj nam znać.

Odpowiedz

12

Nigdy nie musiałem ręcznie uruchamiać serwera, aby uzyskać dostęp do studia zarządzania. Jedyne kilka kroków, które nie zostały wymienione w pytaniu, które zwykle zrobić:

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

Kopiowanie Raven.Studio.xap do folderu głównego mojego projektu WWW.

Po uruchomieniu aplikacji internetowej Studio zarządzania RavenDB jest dostępne pod numerem http://localhost:8080.

+0

OMG: To jest dziwne ... Próbowałem http: // localhost: 8080, ale nie działało na początku. Teraz udało mi się go uruchomić bez nawet dodawania '" CheckCanListenToWhenInNonAdminContext ". Domyśl. Myślę, że miałem inną usługę działającą na porcie 8080 przy pierwszej próbie ... Dzięki John! –

+0

To działa, ale jeśli debuguję test jednostki, zatrzymuje on wykonywanie serwera HTTP, więc nie mogę go używać, chyba że nie debuguję, co oznacza, że ​​nie mogę debugować testów i oglądać studio, co oznacza, że ​​jest to bezużyteczne. Czy istnieje sposób, aby tego uniknąć? – kamranicus