2010-05-13 5 views
1

Je lis par un excellent blog de Rob Ashton sur RavenDB: http://codeofrob.com/archive/2010/05/09/ravendb-an-introduction.aspxQuelles autorisations dois-je accorder pour exécuter RavenDB en mode Serveur?

et je travaille dans le code comme je l'ai lu. Mais quand j'essaye d'ajouter un index, j'obtiens une erreur 401. Voici le code:

class Program 
{ 
    static void Main(string[] args) 
    { 
     using (var documentStore = new DocumentStore() { Url = "http://localhost:8080" }) 
     { 

      documentStore.Initialise(); 

      documentStore.DatabaseCommands.PutIndex(
       "BasicEntityBySomeData", 
       new IndexDefinition<BasicEntity, BasicEntity>() 
       { 
        Map = docs => from doc in docs 
            where doc.SomeData != null 
            select new 
            { 
             SomeData = doc.SomeData 
            }, 
       }); 


      string entityId; 

      using (var documentSession = documentStore.OpenSession()) 
      { 
       var entity = new BasicEntity() 
       { 
        SomeData = "Hello, World!", 
        SomeOtherData = "This is just another property", 
       }; 

       documentSession.Store(entity); 
       documentSession.SaveChanges(); 

       entityId = entity.Id; 

       var loadedEntity = documentSession.Load<BasicEntity>(entityId); 
       Console.WriteLine(loadedEntity.SomeData); 

       var docs = documentSession.Query<BasicEntity>("BasicEntityBySomeData") 
        .Where("SomeData:Hello~") 
        .WaitForNonStaleResults() 
        .ToArray(); 

       docs.ToList().ForEach(doc => Console.WriteLine(doc.SomeData)); 

       Console.Read(); 
      } 

     } 
    } 

Il déclenche l'erreur 401 sur la ligne qui effectue l'appel PutIndex(). Des idées quelles autorisations dois-je appliquer? Et où dois-je les appliquer?

Répondre

1

Qu'entendez-vous par mode serveur? Voulez-vous dire simplement l'exécution de Raven.Server?

Je n'ai pas eu à faire quelque chose de spécial côté client pour que cela fonctionne, bien que j'ai dû exécuter Raven.Server avec des privilèges élevés parce que je ne suis pas sûr que le code pour demander des autorisations pertinentes fonctionne comme prévu. (En fait, je vais soulever une question à ce sujet sur la liste de diffusion)

Vous ne devriez pas obtenir une erreur 401 sauf si vous avez changé la configuration de Raven.Server.

Si vous utilisez le serveur, vous pouvez parcourir en utilisant directement l'URL spécifiée dans la configuration (localhost: 8080 par défaut) - assurez-vous qu'il est en cours d'exécution en fait et fonctionne comme prévu avant de poursuivre le dépannage

+0

Je me sens Je devrais ajouter un avertissement ici, que bien que j'aie écrit des entrées de blog sur le sujet, je ne suis pas un expert dans la façon dont RavenDB devrait fonctionner, ou fonctionner - et seulement savoir ce que j'ai découvert dans mon utilisation de lui jusqu'à présent - qui est probablement plus que la plupart des gens parce que je l'ai utilisé plus que la plupart des gens jusqu'à présent, mais moins que dire, le gars qui l'a écrit (Oren) –

+1

Salut Rob, merci pour la réponse, et pour le vraiment détaillé article de blog - bonnes choses! J'ai un total de 1 heure d'expérience avec RavenDB, donc vous êtes plus expert que moi. Pour le moment, je me suis mis en marche en réglant la touche Raven/AnonymousAccess sur "All". Je suis sûr que ce n'est pas la solution à long terme, mais c'est suffisant pour me faire passer par dessus cette bosse afin de pouvoir expérimenter. – dalesmithtx

+0

Cela devrait être le paramètre par défaut dans Raven.Server - des excuses pour ne pas le mentionner explicitement –

Questions connexes