首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NinjectMvcHttpApplicationPlugin通过Ninject.MVC3 Bootstrapper发出的异常(在MVC4中)

NinjectMvcHttpApplicationPlugin通过Ninject.MVC3 Bootstrapper发出的异常(在MVC4中)
EN

Stack Overflow用户
提问于 2013-04-26 00:51:15
回答 1查看 1.3K关注 0票数 1

我知道在这个话题上已经有一些问题了,但是我仍然遗漏了一些导致这个错误的东西。我安装了ninject.mvc3包,它安装了ninject和ninject.web.common包。global.asax没有进行任何修改(如官方文件中所建议的那样)。

App_Start/NinjectWebCommon.csRegisterServices方法在加载Kernel后有Bind语句。当我试图运行站点时,我会得到这个堆栈跟踪的错误。

代码语言:javascript
复制
[InvalidOperationException: Sequence contains no elements]
   System.Linq.Enumerable.Single(IEnumerable`1 source) +379
   Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start() in c:\Projects\Ninject\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectMvcHttpApplicationPlugin.cs:53
   Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable`1 series, Action`1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:32
   Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:53
   Ninject.Web.Common.NinjectHttpApplication.Application_Start() in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\NinjectHttpApplication.cs:81

[HttpException (0x80004005): Sequence contains no elements]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +12864673
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +175
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

[HttpException (0x80004005): Sequence contains no elements]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12881540
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722601

我还没走完哪一步?

EN

回答 1

Stack Overflow用户

发布于 2013-04-26 08:45:00

来源在第53行说:

代码语言:javascript
复制
ModelValidatorProviders.Providers.Remove(
    ModelValidatorProviders.Providers.OfType<DataAnnotationsModelValidatorProvider>)
    .Single());

您是否在某种程度上抑制了DataAnnotationsModelValidatorProvider的添加?也许不会--因此我建议您在系统中有两个相同逻辑的副本--您有>1 NinjectWebCommon.cs吗?

另一件值得尝试的事情(通常--我没有专门的理由来为您解决这个问题)是看看当您使用包含预发布的 NuGet包时,是否还会发生同样的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16227052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档