如何使用Raven.Client.Lightweight删除RavenDB数据库

Ste*_*ten 6 ravendb

基于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();

    }

}
Run Code Online (Sandbox Code Playgroud)

执行此代码时,会引发以下异常.

System.Net.WebException:远程服务器返回错误:(401)未经授权.在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:第297行:Raven.Client.Connection.HttpJsonRequest.ReadResponseJson()位于c:\ Builds\RavenDB-Unstable-v1.2\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:第218行,位于Raven.Client.Connection .HttpJsonRequest.ExecuteRequest()在c:\ Builds\RavenDB-Unstable-v1.2\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:第161行,位于Com.BuyEfficient.Raven.Service.Program.Main(String [] args)在c:\ code\buyefficient_mvc\Com.BuyEfficient\Com.BuyEfficient.Raven .Service\Program.cs:第39行

我的问题是"我如何正确设置凭据以便控制台应用程序经过身份验证"?

谢谢你,斯蒂芬

更新UPDATE1代码以反映已接受的答案.

Fit*_*aki 5

尝试在计算机上使用CredentialCache.DefaultCredentials或提供管理员用户的凭据.