我知道在这个话题上已经有一些问题了,但是我仍然遗漏了一些导致这个错误的东西。我安装了ninject.mvc3包,它安装了ninject和ninject.web.common包。global.asax没有进行任何修改(如官方文件中所建议的那样)。
App_Start/NinjectWebCommon.cs的RegisterServices方法在加载Kernel后有Bind语句。当我试图运行站点时,我会得到这个堆栈跟踪的错误。
[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我还没走完哪一步?
发布于 2013-04-26 08:45:00
来源在第53行说:
ModelValidatorProviders.Providers.Remove(
ModelValidatorProviders.Providers.OfType<DataAnnotationsModelValidatorProvider>)
.Single());您是否在某种程度上抑制了DataAnnotationsModelValidatorProvider的添加?也许不会--因此我建议您在系统中有两个相同逻辑的副本--您有>1 NinjectWebCommon.cs吗?
另一件值得尝试的事情(通常--我没有专门的理由来为您解决这个问题)是看看当您使用包含预发布的 NuGet包时,是否还会发生同样的事情。
https://stackoverflow.com/questions/16227052
复制相似问题