Domanda

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?

È stato utile?

Soluzione

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

Altri suggerimenti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top