2011-11-13 12 views
15

मैं विजुअल स्टूडियो 2010 में NuGet के माध्यम से एक एम्बेडेड RavenDB =>RavenDB-Embedded.1.0.499 पैकेज के साथ खेल रहा हूं। इसका उपयोग इस प्रोजेक्ट में किया जा रहा है जिसे मैंने इस उत्कृष्ट एमएसडीएन आलेख को पढ़ने के बाद शुरू किया था:RavenDB को एक एंबेडेबल डॉक्यूमेंटस्टोर के रूप में चलाने और RavenDB प्रबंधन स्टूडियो तक पहुंच

Embedding RavenDB into an ASP.NET MVC 3 Application

अब मैं RavenDB Management Studio (वेब ​​यूआई) का उपयोग करना चाहते हैं।

मैंने यहां वर्णित चरणों का पालन किया: 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.Configuration और documentStore.DocumentDatabase है ऊपर कोड पुराना लगता है। मैं Raven.Database.Server.HttpServer ढूंढने में कामयाब रहा लेकिन अन्य ऑब्जेक्ट्स _documentStore में गायब हैं।

तो, सवाल यह है:

मैं अपने एम्बेडेड डेटाबेस डॉक्स कल्पना करने के लिए वेब UI कैसे हिट कर सकते हैं? मुझे अपने ब्राउजर एड्रेस बार में यूआरएल क्या रखना चाहिए?

किसी भी सलाह की सराहना की जाती है।

संपादित करें: मुझे इसे काम करने का एक तरीका मिला है। मैं अपने ब्लॉग पोस्ट में बताया गया है कि यह सबसे अच्छा तरीका नहीं हो सकता है, लेकिन यह काम करता है:

RavenDB Embedded with Management Studio UI

ध्यान दें: ऊपर दृष्टिकोण का एक नकारात्मक पक्ष यह है कि मैं अपने अनुप्रयोग में डेटाबेस का उपयोग करने में सक्षम नहीं कर रहा हूँ क्योंकि सर्वर द्वारा खोले जाने के बाद यह लॉक हो जाता है। इस तरह मुझे सर्वर को रोकना होगा और फिर ब्राउज़र में अपना ऐप पुनः लोड करना होगा।

मुझे आशा है कि रावेनडीबी के गुरुओं के पास बेहतर/सही दृष्टिकोण होगा ... बस हमें बताएं।

उत्तर

12

प्रबंधन स्टूडियो तक पहुंचने के लिए मुझे सर्वर को मैन्युअल रूप से चलाने की ज़रूरत नहीं है। केवल कुछ ही कदम है कि अपने प्रश्न में उल्लेख नहीं किया गया है कि मैं आम तौर पर कार्य करें:

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

कॉपी Raven.Studio.xap अपने वेब परियोजना के रूट फ़ोल्डर में।

जब मेरा वेब एप्लिकेशन चल रहा है, तो रावेनडीबी प्रबंधन स्टूडियो http://localhost:8080 पर पहुंच योग्य है।

+0

ओएमजी: यह अजीब है ... मैंने http: // localhost: 8080 की कोशिश की थी लेकिन यह पहले काम नहीं करता था। अब मैं इसे 'EnsureCanListenToWhenInNonAdminContext' जोड़ने के बिना भी काम कर रहा हूं। जाओ पता लगाओ। मुझे लगता है कि पोर्ट पोर्ट 8080 पर पहली बार कोशिश करने के बाद मेरी एक और सेवा चल रही थी ... धन्यवाद जॉन! –

+0

यह काम करता है लेकिन अगर मैं एक यूनिट टेस्ट डीबग करता हूं, तो यह HTTP सर्वर के निष्पादन को रोकता है, इसलिए मैं इसे तब तक उपयोग नहीं कर सकता जब तक कि मैं डीबग नहीं करता जिसका मतलब है कि मैं अपने परीक्षणों को डीबग नहीं कर सकता और स्टूडियो को देख सकता हूं जिसका अर्थ है कि यह बेकार है। इससे बचने का कोई रास्ता है क्या? – kamranicus

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^