1

Web api ルートにアクセスすると次の例外が発生しますが、それ以外の場合はサイトは正常に動作します。

まだ部分的に Web フォーム上にある MVC アプリケーションを実行しています。DI に structuremap を使用しており、ここ ( http://lucid-nonsense.co.uk/dependency-injection-web-api-and-mvc-4-rc/ ) のアドバイスに従って、WebAPI の DI をセットアップしました。 、しかし、それは違いはありませんでした。

System.Data.Services 3.5.0 は何が必要ですか? これが 4.x ではなく 3.5 であることは、私には奇妙に思えます。

System.IO.FileNotFoundException ファイルまたはアセンブリ 'Microsoft.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。System.Reflection.RuntimeAssembly.GetExportedTypes (RuntimeAssembly アセンブリ、ObjectHandleOnStack retTypes) で System.Reflection.RuntimeAssembly.GetExportedTypes() で System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assemblyResolver) で System.Web.Http.WebHost. WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assemblyResolver) System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache() で System.Lazy 1.CreateValue() at System.Lazy1.LazyInitValue()で System.Lazy 1.CreateValue()1.get_Value() at System.Web.Http.Dispatcher.HttpControllerTypeCache.get_Cache() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() at System.Lazyで System.Lazy1.LazyInitValue() at System.LazySystem.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage リクエスト) での 1.get_Value() System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage リクエスト、CancellationToken cancelToken) での.SendAsync(HttpRequestMessage リクエスト、CancellationToken キャンセルトークン)

どうもありがとう!

4

1 に答える 1

1

お使いのシステムには、ADO.Net Data Services に付属する .Net Framework 3.5 SP1 がありません。ADO.NET Data Services v1.5 CTP2 ( http://www.microsoft.com/en-us/download/details.aspx?id=23113 ) をインストールして、動作するかどうかを確認してください。インストール中にエラーが発生しても、動作する可能性があります。どの DB Context Generator を使用していますか? EF 4.x DbContext Generator を使用している場合は、古いバージョンの Data Services が必要になる可能性があります。MVC4 に付属の EF 5 は VS2010 では動作しません。

于 2012-07-26T07:42:31.050 に答える