Jquery Ninject激活异常
我正在使用asp.NETMVC3。我正在使用ninject 2.2.1.0Jquery Ninject激活异常,jquery,asp.net-mvc,ajax,asp.net-mvc-3,ninject,Jquery,Asp.net Mvc,Ajax,Asp.net Mvc 3,Ninject,我正在使用asp.NETMVC3。我正在使用ninject 2.2.1.0 protected void Application_Start() { // Hook our DI stuff when application starts SetupDependencyInjection(); } public void SetupDependencyInjection() {
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);
}
以上是我的设置方式,在将jQueryUI选项卡更改为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做绑定(我只做我的repo和服务层),所以它必须自己做。这可能不是一个实际的答案,但我还是会去做。我在使用MVC2和Ninject 2.0时遇到了同样的问题 我当时正在做一个光控制器,它可以简单地将图像吐回页面。每个页面请求会被点击30次左右。我使用Ninject处理我所有控制器的依赖关系,但在使用特定控制器时遇到了问题 有时,Ninject会抛出与您遇到的ActivationException完全相同的异常。使错误消失的唯一方法是重新启动应用程序池 在花了好几个小时试图确定原因后,我得出的唯一结论是,在同一实例发生大量请求的情况下,Ninject在注入依赖项时肯定有问题。这是光控制器和项目中任何其他控制器之间的唯一区别 我通过切换到使用通用处理程序解决了这个问题,之后不久,使用预先确定的blob存储URL
很抱歉,我帮不了你什么忙,但是我一直没有解决这个问题。理论上,你可以通过在应用程序启动时向有问题的控制器发送一个请求来初始化Ninject绑定来解决这个问题。我觉得问题在于某种奇怪的比赛条件,因为我只在Ninject第一次尝试绑定控制器时才看到这种情况。一旦它成功地完成了这项工作,它就会正常工作,直到应用程序必须重新启动。@Dusda-可能是一种竞争条件。我现在正在本地测试,所以我无法想象这是因为它被击中太多次(应该只有一次)。我不知道您的意思是什么,只向应用程序上有问题的控制器发送一个请求。\u start。嗯,Ninject在应用程序生命周期中第一次使用控制器时就为其设置绑定。然后它会保留它们,直到应用程序重新启动。这就是为什么我们遇到的ActivationException有时会突然出现,并在出现时粘住。在我的案例中,我怀疑问题在于控制器被大量请求击中,从而导致竞争状况。因此,我可能已经解决了这个问题,确保在应用程序第一次启动时执行一个请求来“轻松处理”。听起来有点骇人。@Dusda:2.2修正了一个竞赛条件。您是否尝试过更新到2.2?如果您使用mvc扩展而不是使用自己的依赖项解析程序,是否会出现此问题?@Remo Gloor-这就是我的想法,因此我将尝试扩展。