6

私は、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 受け入れられた回答を反映するようにコードが更新されました。

4

1 に答える 1

5

CredentialCache.DefaultCredentialsを使用するか、マシンの管理者ユーザーの資格情報を提供してみてください。

于 2012-09-19T07:59:54.413 に答える