私は、1.2 Raven Studioの方法とコードをWindowsコンソールに移植する方法に基づいて、データベース(サービスとして実行されているraven)を削除する適切な方法に私が信じていることを実装しました。
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();
}
}
このコードを実行すると、次の例外が発生します。
System.Net.WebException:リモートサーバーがエラーを返しました:(401)許可されていません。System.Net.HttpWebRequest.GetResponse()のRaven.Client.Connection.HttpJsonRequest.ReadJsonInternal(Func`1 getResponse)の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
私の質問は、「コンソールアプリが認証されるように、資格情報を正しく設定するにはどうすればよいですか」ということです。
ありがとう、スティーブン
UPDATE1 受け入れられた回答を反映するようにコードが更新されました。