【问题标题】:Ninject for Web Site and Api - Sequence contains no elements用于网站和 Api 的 Ninject - 序列不包含任何元素
【发布时间】:2012-12-17 18:59:33
【问题描述】:

我有一个带有 Web.Api 项目和 MVC 3 项目的 VS2010 解决方案。

Web.APi 和 MVC 项目都有自己的 App_Start,其中包含 NinjectWebCommon,并在其中声明了自己的绑定。

尝试使用 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 source) +371 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(IEnumerable1 series, Action1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:32 Ninject.Web.Common.Bootstrapper.Initialize(Func1 createKernelCallback) 在 c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:53 D:\Code\XXXX\PoS\XXXX.UI\App_Start\NinjectWebCommon.cs:32 中的 XXXX.UI.App_Start.NinjectWebCommon.Start()

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

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

【问题讨论】:

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


    【解决方案1】:

    回归基础。

    遵循此处定义的步骤:http://www.eyecatch.no/blog/2012/06/using-ninject-with-webapi-rc/

    仍然有问题,但那是因为 MVC 客户端站点有对 ninject.webapi 的引用。删除了所有的作品。

    【讨论】:

    • 我遇到了类似的问题。在最初设置我的环境时,我添加了对我的 web api 项目(到我的客户端项目)的引用。删除这个我的问题就消失了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2015-02-19
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多