Ninject激活异常

时间:2011-03-16 21:09:27

标签: jquery asp.net-mvc ajax asp.net-mvc-3 ninject

我使用的是asp.net mvc 3.我使用的是ninject 2.2.1.0

 protected void Application_Start()
        {
            // Hook our DI stuff when application starts
            SetupDependencyInjection();
        }

        public void SetupDependencyInjection()
        {         
            // Tell ASP.NET MVC 3 to use our Ninject DI Container
            DependencyResolver.SetResolver(new NinjectDependencyResolver(CreateKernel()));
        }

        protected IKernel CreateKernel()
        {
            var modules = new INinjectModule[]
                              {
                                 new NhibernateModule(),
                                 new ServiceModule(),
                                 new RepoModule()
                              };

            return new StandardKernel(modules);
        }

以上就是我的设置方式,在我将jquery ui标签更改为ajax之前,我从未遇到任何问题。

现在我有页面加载然后调用第一个选项卡并执行ajax请求。有时我会收到以下错误消息,有时我不会。我不知道为什么我会得到它。

Error activating _Page_Areas_Site_Views_Site_pDataTable_cshtml
More than one matching bindings are available.
Activation path:
  1) Request for _Page_Areas_Site_Views_Site_pDataTable_cshtml

Suggestions:
  1) Ensure that you have defined a binding for _Page_Areas_Site_Views_Site_pDataTable_cshtml only once.

我从未告诉ninject做绑定(我只做我的回购和服务层)所以它必须自己做。

1 个答案:

答案 0 :(得分:0)

这可能不是一个真正的答案,但无论如何我都会去做。我遇到了同样的问题,使用了Mvc 2和Ninject 2.0。

我正在开发一个PhotoController,它只是将图像吐回到页面。每页请求会被击中三十次左右。我正在使用Ninject与我的所有控制器的依赖关系,并遇到了特定控制器的问题。

有时,Ninject会抛出与您遇到的完全相同的ActivationException。使错误消失的唯一方法是重新启动应用程序池。

经过数小时和数小时的努力来确定原因,我得出的唯一结论是Ninject必须在出现大量同一实例请求的情况下注入依赖项时出现问题。这是PhotoController与项目中任何其他人之间的唯一差异。

我通过切换到使用通用处理程序解决了这个问题,之后不久,预先确定了blob存储网址。

抱歉,我无法提供更多帮助,但I posted a question about my experience on stack并且从未得到解决方案。