2011-11-13 3 views
15

Visual Studio 2010에서 NuGet을 통해 설치된 임베디드 RavenDB =>RavenDB-Embedded.1.0.499 패키지로 게임하고 있습니다.이 우수한 MSDN 기사를 읽은 후 시작한 현재 프로젝트에서 사용 중입니다.RavenDB를 EmbeddableDocumentStore로 실행하고 RavenDB Management Studio에 액세스

Embedding RavenDB into an ASP.NET MVC 3 Application

지금은 RavenDB Management Studio (웹 UI)에 액세스하고 싶습니다.

나는 여기에 설명 된 단계를 따랐다 : Is it possible to connect to an embedded DB with Raven Management Studio 그리고 여기 Running RavenDB in embedded mode with HTTP enabled 그러나 나는 요점을 얻지 못했다.

내가 DocumentStore 초기화하기 위해 사용하고 코드입니다 :

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

을하고이 Web.config에서 ConnectionString 존재 :

<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.ConfigurationdocumentStore.DocumentDatabase이 있기 때문에 위의 코드는 오래된 것 같다. 나는 Raven.Database.Server.HttpServer을 찾을 수 있었지만 _documentStore에는 다른 객체가 없습니다.

그래서, 질문은 :

가 어떻게 내 포함 된 데이터베이스의 문서를 시각화하는 웹 UI를 칠 수있다? 브라우저 주소창에 입력해야하는 URL은 무엇입니까?

모든 조언을 주시면 감사하겠습니다.

편집 : 나는 그것을 작동시키는 방법을 발견했습니다. 내 블로그 게시물에서 설명한 바와 같이이 가장 좋은 방법하지 않을 수 있지만, 작업을 수행합니다

RavenDB Embedded with Management Studio UI

참고 : 위의 방법 중 하나 단점은 내가 내 응용 프로그램에서 데이터베이스에 액세스 할 수 아니에요입니다 일단 서버에 의해 열리면 잠긴다. 이 방법은 서버를 중지하고 브라우저에서 내 애플 리케이션을 다시로드해야합니다.

더 나은/올바른 접근법을 사용하는 RavenDB의 전문가가되기를 바랍니다 ... 그냥 알려주세요.

답변

12

관리 스튜디오에 액세스하기 위해 수동으로 서버를 실행하지 않아도됩니다. 귀하의 질문에 언급되지 않은 유일한 몇 단계는 내가 일반적으로 할이 : 내 웹 프로젝트의 루트 폴더에

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

복사 Raven.Studio.xap.

내 웹 응용 프로그램이 실행 중일 때 RavenDB Management Studio는 http://localhost:8080에 액세스 할 수 있습니다.

+0

OMG : 이상한 ... 나는 http : // localhost : 8080을 시도했지만 처음에는 작동하지 않았다. 이제는 EnsureCanListenToWhenInNonAdminContext를 추가하지 않고도 작동하게되었습니다. 그림을 이동. 첫 번째 시도에서 포트 8080에서 실행되는 다른 서비스가 있다고 생각합니다 ... John에게 감사드립니다! –

+0

이 작동하지만 단원 테스트를 디버깅 할 경우 HTTP 서버 실행을 중지하므로 디버그하지 않으면 사용할 수 없습니다. 즉, 테스트를 디버그하거나 쓸모가 없다는 스튜디오를 볼 수 없다는 것을 의미합니다. 이것을 피할 수있는 방법이 있습니까? – kamranicus

관련 문제