2

最近我通过包管理器安装了RavenDB(一堆程序集:客户端、数据库、嵌入式) 。NuGet我是这样配置DocumentStore的:

public override void Load()
{
    Bind<IDocumentStore>().ToMethod(
        context => {
            var documentStore = new EmbeddableDocumentStore { 
                Url = "http://localhost:8080", 
                DefaultDatabase = "ampDatabase",
                UseEmbeddedHttpServer = true
            };
            return documentStore.Initialize();
        }
    ).InSingletonScope();

    Bind<IDocumentSession>().ToMethod(context => 
        context.Kernel.Get<IDocumentStore>().OpenSession()
    ).InRequestScope();
}

调用此代码后:

documentSession.Store(idea);
documentSession.SaveChanges();

我得到System.Net.Sockets.SocketException

无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8080

我错过了什么?

4

1 回答 1

2

你这样设置:

 var documentStore = new EmbeddableDocumentStore { 
                Url = "http://localhost:8080", 
                DefaultDatabase = "ampDatabase",
                UseEmbeddedHttpServer = true
            };

问题是这实际上告诉我们不要使用嵌入式模式,而是尝试以服务器客户端的方式来处理事情。将其更改为:

 var documentStore = new EmbeddableDocumentStore { 
                DataDirectory = "Database",
                UseEmbeddedHttpServer = true
            };

它会起作用

于 2012-06-24T04:58:32.517 回答