2010-08-09 10 views
26

RavenDB a la capacité de fonctionner en mode 'embarqué', ce qui, d'après ce que je comprends, devrait lui permettre d'être exécuté dans un environnement d'hébergement partagé.Comment utiliser RavenDB dans un environnement d'hébergement partagé?

Quelqu'un a-t-il une idée de comment cela fonctionnerait dans une application ASP.NET MVC, et quelle serait la meilleure pratique pour le faire?

Y a-t-il des dépendances dans l'environnement d'hébergement dont j'ai besoin de connaître?

+0

Cela dépend des autorisations que votre environnement d'hébergement autorise ... [Version intégrée dans un environnement hébergé ASP.Net] (http://groups.google.com/group/ravendb/browse_thread/thread/8f508f0d2603a8d6/cba4f0cc5f8d73?lnk = gst & q = embedded # cba4f0ccbe5f8d73) – sqlray

+0

Merci - cela couvre la deuxième partie de ma question (c'est-à-dire les dépendances), mais qu'en est-il une meilleure pratique pour l'implémenter réellement? –

+0

Le téléchargement http://ravendb.net/tutorials contient un échantillon MVC et le groupe google est une communauté active où je suis sûr que vous pouvez trouver des réponses aux détails. – sqlray

Répondre

13

Oui.

Je RavenDB en cours d'exécution dans un environnement d'hébergement partagé, http://www.winhost.com/, en utilisant ASP.NET MVC 3 et RavenDB 1.0.0.371 qui a été publié quelque part autour de Juillet 2011.

Mon code:

public static class Store 
{ 
    private static IDocumentStore store = createStore(); 

    private static EmbeddableDocumentStore createStore() 
    { 
     var returnStore = new EmbeddableDocumentStore(); 
     returnStore.DataDirectory = @"./PersistedData"; 
     returnStore.Initialize(); 
     return returnStore; 
    } 

    public static xxx Read(string key) 
    { 
     using (var session = store.OpenSession()) 
     { 

      var anEntity = session.Query<xxx>(). 
       Where(item => item.key == key).Single(); 
      return anEntity; 
     } 
    } 

    public static void Write(xxx) 
    { 
     using (var session = store.OpenSession()) 
     { 
      session.Store(xxx); 
      session.SaveChanges(); 
     } 
    } 
} 

Le Seul inconvénient jusqu'à présent, je ne reçois pas le studio de gestion RavenDB.

+2

Vous pourriez essayer d'utiliser 'UseEmbeddedHttpServer = true' sur le' returnStore' pour le studio de gestion -> http://ravendb.net/faq/embedded-with-http –

+1

@David: fantastique ... J'ai cherché pour cela toute la journée. Exécuter RavenDB dans Medium Trust est une douleur et actuellement je pense que ce n'est pas possible. WinHost offre une confiance totale! Génial. Juste ce que j'ai besoin. –