2012-09-19 4 views
6

J'ai mis en place ce que je crois à la bonne façon de supprimer une base de données (corbeau en cours d'exécution en tant que service), en fonction de la manière du 1.2 Raven Studio de le faire et le portage du code à une console Windows.Comment supprimer une base de données RavenDB avec Raven.Client.Lightweight

static class Program 
{  
    static void Main(string[] args) 
    { 
     try 
     { 
      using (var store = new DocumentStore { ConnectionStringName = "RavenDB" }.Initialize()) 
      { 

       var metadata = new RavenJObject(); 

       var factory = store.JsonRequestFactory; 

       const string url = "http://localhost:8080/admin/databases/raven-products?hard-delete=true"; 

       var credentials = CredentialCache.DefaultCredentials; 

       var convention = new DocumentConvention(); 

       var requestParams = new CreateHttpJsonRequestParams(store.DatabaseCommands, url, "DELETE", metadata, credentials, convention); 

       var request = factory.CreateHttpJsonRequest(requestParams); 

       request.ExecuteRequest(); 

      } 

     } 
     catch (Exception exception) 
     { 
      Console.WriteLine(exception); 
     } 

     Console.WriteLine("Press any key.."); 
     Console.ReadKey(); 

    } 

} 

Lorsque ce code est exécuté, l'exception suivante est déclenchée.

System.Net.WebException: The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.GetResponse() at Raven.Client.Connection.HttpJsonRequest.ReadJsonInternal(Func`1 getResponse) in c:\Builds\RavenDB-Unstable-v1.2\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 297 at Raven.Client.Connection.HttpJsonRequest.ReadResponseJson() in c:\Builds\RavenDB-Unstable-v1.2\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 218 at Raven.Client.Connection.HttpJsonRequest.ExecuteRequest() in c:\Builds\RavenDB-Unstable-v1.2\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 161 at Com.BuyEfficient.Raven.Service.Program.Main(String[] args) in c:\code\buyefficient_mvc\Com.BuyEfficient\Com.BuyEfficient.Raven .Service\Program.cs:line 39

Ma question est la suivante: "Comment configurer correctement les informations d'identification pour que l'application de la console soit authentifiée"?

Merci, Stephen

Update1 code mis à jour pour refléter réponse acceptée.

Répondre

5

Essayez d'utiliser CredentialCache.DefaultCredentials ou fournir les informations d'identification d'un utilisateur admin sur la machine.

+0

Fitzchak, merci. –

+0

Lorsque la base de données est en charge, je ne peux pas supprimer. Au lieu de cela, je reçois cette System.Net.WebException: l'opération a expiré. –

Questions connexes