2010-05-13 5 views
1

Я читаю через отличную блоге Роба Эштона на RavenDB: http://codeofrob.com/archive/2010/05/09/ravendb-an-introduction.aspxКакие разрешения я должен предоставить для запуска RavenDB в режиме сервера?

, и я работаю через код, как я прочитал. Но когда я пытаюсь добавить индекс, я получаю ошибку 401. Вот код:

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(); 
      } 

     } 
    } 

Он выдает ошибку 401, когда на линии, которая вызывает вызов PutIndex(). Любые идеи, какие разрешения я должен применять? И где мне нужно их применять?

ответ

1

Что вы подразумеваете под режимом сервера? Вы имеете в виду просто выполнение Raven.Server?

Мне не нужно было делать что-то особенное на стороне клиента, чтобы заставить его работать, хотя мне пришлось запускать Raven.Server с повышенными привилегиями, потому что я не уверен, что код, требующий соответствующих разрешений, вполне работоспособен как предполагалось. (На самом деле, я сделаю запрос об этом в списке рассылки)

Вы не должны получать ошибку 401, если вы не изменили конфигурацию Raven.Server.

Если вы запускаете сервер, вы можете просматривать к нему напрямую, используя URL-адрес, указанный в конфигурации (локальный: 8080 по умолчанию) - убедитесь, что он на самом деле работает и работает, как предполагалось перед продолжением устранения неполадок

+0

я чувствую Я должен добавить заявление об отказе от ответственности, что, хотя я писал записи в блоге по этому вопросу, я * не * эксперт в том, как RavenDB должен работать или работать, и только знаю, что я обнаружил при моем использовании до сих пор - это, вероятно, больше, чем большинство людей, потому что я использовал его больше, чем большинство людей, но меньше, чем сказать, парень, который его написал (Oren) –

+1

Привет, Роб, спасибо за ответ, и за действительно подробное сообщение в блоге - хорошие вещи! У меня в общей сложности 1 час опыта работы с RavenDB, поэтому вы скорее эксперт, чем я. На данный момент я встал и начал работать, установив ключ Raven/AnonymousAccess на «Все». Я уверен, что это не долгосрочное решение, но этого достаточно, чтобы заставить меня справиться с этим горбом, чтобы я мог экспериментировать. – dalesmithtx

+0

Это должно быть значение по умолчанию в Raven.Server - извинения за то, что он не упоминает его явно –