无法让Web API在我的MVC应用程序中工作

时间:2012-07-20 10:29:27

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api

当我访问Web api路由时出现以下异常,但该网站工作正常。

我正在运行部分在Web表单上的MVC应用程序。我们正在使用DI的结构图,我按照这里的建议(http://lucid-nonsense.co.uk/dependency-injection-web-api-and-mvc-4-rc/)为WebAPI设置DI,但没有区别。

什么需要System.Data.Services 3.5.0?我觉得奇怪的是这是3.5而不是4.x

  

System.IO.FileNotFoundException    无法加载文件或程序集' Microsoft.Data.Services,   Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'要么   其中一个依赖项。该系统找不到指定的文件。     在   System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly   assembly,ObjectHandleOnStack retTypes)at   System.Reflection.RuntimeAssembly.GetExportedTypes()at   System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver   assembliesResolver)at   System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver   assembliesResolver)at   System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()   在System.Lazy 1.CreateValue() at System.Lazy 1.LazyInitValue()at   System.Lazy 1.get_Value() at System.Web.Http.Dispatcher.HttpControllerTypeCache.get_Cache() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() at System.Lazy 1.CreateValue()在System.Lazy 1.LazyInitValue() at System.Lazy 1.get_Value()at   System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage   请求)   System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage   请求,取消语音取消语言)   System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage   请求,取消语音取消语句)   

非常感谢!

1 个答案:

答案 0 :(得分: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。