MONO 3.0.2 + Ninject + MVC4 : Sequence contains no matching element

标签 mono asp.net-mvc-4 ninject ninject.web.mvc

我正在使用 VS2012 RC 并在 .NET 4.0 模式下创建了一个 MVC4 应用程序。我使用 Ninject + Ninject.MVC3 作为 DI 容器。它可以在我的 Windows 开发计算机和另一台安装了 .NET 4.0 的计算机上运行,​​但是当我将其部署到带有 Mono 3.0.2、XSP 和 fastcgi + lighttpd 的 Linux 服务器上时,我只是收到一条与 Ninject 相关的错误消息:

System.InvalidOperationException
Sequence contains no matching element

  at System.Linq.Enumerable.Single[DataAnnotationsModelValidatorProvider] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.Single[DataAnnotationsModelValidatorProvider] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start () [0x00000] in <filename unknown>:0 
  at Ninject.Web.Common.Bootstrapper.<Initialize>b__0 (INinjectHttpApplicationPlugin c) [0x00000] in <filename unknown>:0 
  at Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[INinjectHttpApplicationPlugin] (IEnumerable`1 series, System.Action`1 action) [0x00000] in <filename unknown>:0 
  at Ninject.Web.Common.Bootstrapper.Initialize (System.Func`1 createKernelCallback) [0x00000] in <filename unknown>:0 
  at MvcApplication1.App_Start.NinjectWebCommon.Start () [0x00000] in <filename unknown>:0 
  at MvcApplication1.MvcApplication.Application_Start () [0x00000] in <filename unknown>:0 

澄清一下:我必须手动调用生成的 NinjectWebCommon 类的 Start 和 Stop 方法,因为 [assemble: WebActivator.PreApplicationStartMethod...] 属性被忽略(我首先收到错误消息关于缺少默认构造函数,这对于 DI Controller 来说是正常的)

我也尝试子类化 NinjectHttpApplication,但遇到了同样的错误。

这里有什么帮助吗?

最佳答案

根据我的经验,Mono 中的 DI 容器有点不稳定。如果您没有时间深入挖掘并修复可能出现的 Mono bug,我会尝试不同的 DI 容器。

关于MONO 3.0.2 + Ninject + MVC4 : Sequence contains no matching element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13862991/

相关文章:

c# - 显示表单会锁定单声道

android - 适用于 iPhone 和 Android 的跨平台且性能良好的移动应用程序

c# - 在 C# 中分析方法以了解运行需要多长时间

events - Azure 上的 Greg Youngs EventStore 与 Mono - Http 无法正常工作

c# - 如何在 Controller 的操作中访问下拉列表控件 ID

javascript - 自动将 JSON 日期转换为 javascript 日期

database - 在 Entity Framework 5 中创建新对象时如何生成唯一的 GUID?

asp.net - ninject 在高层次上是如何工作的,它是如何拦截对象实例化的?

.net - 为什么我不能用 Ninjects ConstructorArgument 注入(inject) null 值?

c# - Ninject:将多种类型绑定(bind)到同一个单例实例