我最近将我的网站项目更新为 Ninject 3.0.0-rc3,之后我收到错误消息“提供的连接无效,因为它包含的映射或元数据信息不足”。
当我使用 2.2.0.0 版本时,所有这些都有效。
知道什么会导致出现此异常以及如何解决它?
我使用的是 EF,后端是 SQL Server 2008 R2。
我遇到了同样的问题,我通过切换回扩展来修复它NinjectHttpApplication
而不是 NinjectWebCommon.cs 方法。看https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application更多细节。
为了使 Ninject 3 升级正常工作,我必须将以下绑定添加到我的绑定模块中:
Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
我认为问题的根源在于 NinjectWebCommon.cs 在应用程序完全了解其自己的上下文之前被调用,因此如果在设置上下文时实例化了上下文,则实体框架无法弄清楚如何解析连接字符串。绑定。对于许多项目来说这不是问题,但我们的项目使用数据库配置来确定首先加载哪些 Ninject 模块。全球的Application_Start
方法可能会在应用程序生命周期的稍后某个时刻被调用,因此在 Global 中设置绑定效果很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)