asp.net-mvc-3 - 用于网站和 Api 的 Ninject - 序列不包含元素

标签 asp.net-mvc-3 rest ninject.web.mvc

我有一个 VS2010 解决方案,其中包含一个 Web.Api 项目和一个 MVC 3 项目。

Web.APi 和 MVC 项目都有自己的 App_Start,其中包含 NinjectWebCommon 以及其中声明的自己的绑定(bind)。

当尝试使用 Api 时,我总是收到以下消息:

序列不包含元素

描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.InvalidOperationException:序列不包含元素

来源错误:

第 30 行:DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule)); 第 31 行:DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule)); 第 32 行:bootstrapper.Initialize(CreateKernel); 第 33 行:} 第 34 行:

源文件:D:\Code\GreenDeal\PoS\GreenDeal.UI\App_Start\NinjectWebCommon.cs 行:32

堆栈跟踪:

[InvalidOperationException:序列不包含元素] System.Linq.Enumerable.Single(IEnumerable1 源)+371 C:\Projects\Ninject\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectMvcHttpApplicationPlugin.cs 中的 Ninject.Web.Mvc.NinjectMvcHttpApplicationPlugin.Start():53 C:\Projects\Ninject\ninject\src\Ninject\Infrastruct\Language\ExtensionsForIEnumerableOfT.cs:32 中的 Ninject.Infrastruct.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 系列,Action1 操作) C:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:53 中的 Ninject.Web.Common.Bootstrapper.Initialize(Func1 createKernelCallback) D:\Code\XXXX\PoS\XXXX.UI\App_Start\NinjectWebCommon.cs:32 中的 XXXX.UI.App_Start.NinjectWebCommon.Start()

如果我从 Api 或 MVC 站点删除 WebActivator.PreApplicationStartMethod,则不会收到此错误。

我认为拥有两个 Start 存在问题,但不知道该怎么办?我可以让它们共存吗?我应该分成两个解决方案并希望它消失吗?部署后,站点和 api 将驻留在不同的服务器上,站点将使用 api。

最佳答案

回到基础。

按照此处定义的步骤进行操作:http://www.eyecatch.no/blog/2012/06/using-ninject-with-webapi-rc/

仍然存在问题,但那是因为 MVC、客户端站点引用了 ninject.webapi。删除了该内容和所有作品。

关于asp.net-mvc-3 - 用于网站和 Api 的 Ninject - 序列不包含元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138503/

相关文章:

c# - NinjectMVC3 的 WebActivator.PreApplicationStartMethod 程序集属性在我的 View 源代码编辑器中导致警告

asp.net - 有谁知道 Razor、Spark 和 NVelocity View 引擎之间的性能差异?

c# - 返回 HTTP 401 并说客户端不要重复请求

java - 在 Dropwizard 中启用 Jersey RequestDispatcher 需要哪些 jar

java - 带有正则表达式的 JAX-RS @Path 注释与预期的 URL 不匹配

asp.net-mvc-4 - Ninject.MVC WebViewPage _Layout.cshtml 注入(inject)为空

asp.net-mvc - 处理ajax调用中的 session 超时

asp.net-mvc-3 - 在哪里可以找到MvcTextTemplateHost的API规范?

java - 结果 Object/json 包含 Long 字段类型时单元测试 Spring MVC REST Controller

c# - 根据 .config 文件中的设置选择注入(inject)构造函数