尝试:
为ninject RavenDB添加了一个模块:
Public class RavenDBNinjectModule : NinjectModule
{
public override void Load()
{
Bind<IDocumentStore>().ToMethod(context =>
{
NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);
var documentStore = new EmbeddableDocumentStore { Url="http://localhost:8080/", DataDirectory="~/App_Data", UseEmbeddedHttpServer = true };
return documentStore.Initialize();
}).InSingletonScope();
Bind<IDocumentSession>().ToMethod(context => context.Kernel.Get<IDocumentStore>().OpenSession()).InRequestScope();
}
}
在我的班级“NinjectWebCommon”中......
private static void RegisterServices(IKernel kernel)
{
kernel.Load(new RavenDBNinjectModule());
}
运行应用程序时,会生成以下网址(“http://localhost:1423”)
确认文件“Raven.Studio.xap”是我的应用程序的根
我尝试访问“http://localhost:8080”,但会显示以下屏幕:
我做错了什么?
答案 0 :(得分:0)
您正在设置Url属性,这意味着您没有在嵌入模式下运行,而是在服务器模式下运行。 删除Url属性,一切都适合您。
答案 1 :(得分:0)
我发现了问题!
由于他很快就使用了IDocumentSession
,因此ninject没有创建IDocumentStore
的实例,因此没有运行Initialize
方法
答案 2 :(得分:0)
事实证明,问题是documentStore.Initialize
永远不会被调用,因为没有人确实要求Ninject解决IDocumentStore
。