3

Web.Api プロジェクトと MVC 3 プロジェクトを含む単一の VS2010 ソリューションがあります。

Web.API と MVC プロジェクトの両方に、NinjectWebCommon を含む独自の App_Start と、そこで宣言された独自のバインディングがあります。

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: シーケンスに要素が含まれていません] c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.csの 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(IEnumerable1 シリーズ、アクション1 createKernelCallback): 1 action) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:32 Ninject.Web.Common.Bootstrapper.Initialize(Func53 XXXX.UI.App_Start.NinjectWebCommon.Start() in D:\Code\XXXX\PoS\XXXX.UI\App_Start\NinjectWebCommon.cs:32

Api または MVC サイトから WebActivator.PreApplicationStartMethod を削除すると、このエラーは発生しません。

スタートが 2 つあることに問題があると思いますが、どうすればよいでしょうか? 共存させることはできますか?解決策を 2 つに分けて、それがなくなることを願っていますか? サイトと API をデプロイすると、別のサーバーに配置され、サイトは API を使用します。

4

1 に答える 1