我有一个带有 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(IEnumerable 1 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(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 XXXX.UI.App_Start.NinjectWebCommon.Start() 在 D:\Code\XXXX\PoS\XXXX.UI\App_Start\NinjectWebCommon.cs:32
如果我从 Api 或 MVC 站点中删除 WebActivator.PreApplicationStartMethod,我不会收到此错误。
我认为有两个 Start 有问题,但不知道该怎么办?我可以让它们共存吗?我应该分成 2 个解决方案并希望它消失吗?部署站点后,api 将驻留在不同的服务器上,站点将使用 api。