我使用的是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做绑定(我只做我的回购和服务层)所以它必须自己做。
答案 0 :(得分:0)
这可能不是一个真正的答案,但无论如何我都会去做。我遇到了同样的问题,使用了Mvc 2和Ninject 2.0。
我正在开发一个PhotoController,它只是将图像吐回到页面。每页请求会被击中三十次左右。我正在使用Ninject与我的所有控制器的依赖关系,并遇到了特定控制器的问题。
有时,Ninject会抛出与您遇到的完全相同的ActivationException。使错误消失的唯一方法是重新启动应用程序池。
经过数小时和数小时的努力来确定原因,我得出的唯一结论是Ninject必须在出现大量同一实例请求的情况下注入依赖项时出现问题。这是PhotoController与项目中任何其他人之间的唯一差异。
我通过切换到使用通用处理程序解决了这个问题,之后不久,预先确定了blob存储网址。
抱歉,我无法提供更多帮助,但I posted a question about my experience on stack并且从未得到解决方案。