문제

Try:

  1. I created a new project in VS2012
  2. I installed via the NuGet package RavenDB Embedded -Pre
  3. I installed Ninject.MVC3
  4. Added a module for 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();
       }
    } 
    
  5. In my class "NinjectWebCommon" ...

    private static void RegisterServices(IKernel kernel)
    {
        kernel.Load(new RavenDBNinjectModule());
    } 
    

When running the application, the following url was generated ("http://localhost:1423")

Verify that the file "Raven.Studio.xap" was the root of my application

I tried accessing "http://localhost:8080" but the following screen is displayed: enter image description here

What am I doing wrong?

도움이 되었습니까?

해결책

As it turned out, the issue is that documentStore.Initialize never get called, because that no one did ask Ninject to resolve IDocumentStore.

다른 팁

You are setting the Url property, which means that you aren't running in embedded mode, but in server mode. Remove the Url property, and everything will work for you.

I found the problem!

Since he had used IDocumentSession in no time, the ninject had not created the instance of IDocumentStore and thus not run the Initialize method

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top