2012-09-19 28 views
6

Tôi đã thực hiện những gì tôi tin vào đúng cách để xóa một cơ sở dữ liệu (raven chạy như một dịch vụ), dựa trên cách làm của nó và chuyển mã vào bảng điều khiển cửa sổ.Làm thế nào để xóa một cơ sở dữ liệu RavenDB với 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(); 

    } 

} 

Khi mã này được thực thi, ngoại lệ sau được nêu ra.

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

Câu hỏi của tôi là "Làm cách nào để thiết lập chính xác thông tin xác thực để ứng dụng bảng điều khiển được xác thực"?

Cảm ơn bạn, Stephen

UPDATE1 Mã được cập nhật để phản ánh câu trả lời được chấp nhận.

Trả lời

5

Hãy thử sử dụng CredentialCache.DefaultCredentials hoặc cung cấp thông tin đăng nhập của người dùng quản trị trên máy.

+0

Fitzchak, cảm ơn. –

+0

Khi cơ sở dữ liệu đang được tải, tôi không thể xóa. Thay vào đó tôi nhận được System.Net.WebException này: Hoạt động đã hết thời gian chờ. –

Các vấn đề liên quan