Zaimplementowałem, jak uważam, prawidłowy sposób usuwania bazy danych (kruka działającego jako usługa), w oparciu o sposób 1.2 Raven Studio i przeniesienie kod do konsoli Windows.Jak usunąć bazę danych RavenDB za pomocą 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();
}
}
Po wykonaniu tego kodu powstaje następujący wyjątek.
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
Moje pytanie brzmi "Jak poprawnie skonfigurować dane uwierzytelniające, aby aplikacja konsoli była uwierzytelniona"?
Dziękuję Stephen
UPDATE1 Kod aktualizowane w celu odzwierciedlenia Zaakceptowanych odpowiedź.
Fitzchak, dziękuję. –
Gdy baza danych jest obciążona, nie mogę jej usunąć. Zamiast tego otrzymuję ten System.Net.WebException: Operacja przekroczyła limit czasu. –