我有一个带有 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(IEnumerable
1 系列, 动作1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:32
Ninject.Web.Common.Bootstrapper.Initialize(Func
1 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 存在问题,但不知道该怎么办?我可以让它们共存吗?我应该分成两个解决方案并希望它消失吗?部署后,站点和 api 将驻留在不同的服务器上,站点将使用 api。