【问题标题】:Unable to get Web API to work in my MVC application无法让 Web API 在我的 MVC 应用程序中工作
【发布时间】:2012-07-19 14:57:21
【问题描述】:

当我访问 Web api 路由时出现以下异常,但该站点在其他情况下工作正常。

我正在运行的 MVC 应用程序仍部分位于 Web 表单上。我们正在为 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, 版本=3.5.0.0,文化=中性,PublicKeyToken=b77a5c561934e089' 或 它的依赖项之一。该系统找不到指定的文件。 在 System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly 程序集,ObjectHandleOnStack retTypes)在 System.Reflection.RuntimeAssembly.GetExportedTypes() 在 System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver 程序集解析器)在 System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver 程序集解析器)在 System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache() 在 System.Lazy1.CreateValue() at System.Lazy1.LazyInitValue() 在 System.Lazy1.get_Value() at System.Web.Http.Dispatcher.HttpControllerTypeCache.get_Cache() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() at System.Lazy1.CreateValue() 在 System.Lazy1.LazyInitValue() at System.Lazy1.get_Value() 在 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage 请求)在 System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage 请求,CancellationToken 取消令牌)在 System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage 请求,CancellationToken 取消令牌)

非常感谢!

【问题讨论】:

  • 您使用的是 RC 还是 beta 或 nightly build?
  • 我正在使用 RC。根据 NuGet,所有包都是最新的。

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


【解决方案1】:

您的系统缺少 ADO.Net 数据服务附带的 .Net Framework 3.5 SP1。您可以尝试安装 ADO.NET Data Services v1.5 CTP2:http://www.microsoft.com/en-us/download/details.aspx?id=23113 并查看它是否有效。即使在安装过程中出现错误,它也可能有效。 您正在使用哪个数据库上下文生成器?如果您使用 EF 4.x DbContext Generator,那么我认为它可能需要旧版本的数据服务。 MVC4 自带的 EF 5 不适用于 VS2010。

【讨论】:

  • 您好,感谢您的回复。我现在不在我的工作站附近,但仅供参考,同一个 VS2010 解决方案中的另一个项目与 WebAPI 配合得很好——这个项目是标准示例 webapi 项目。我不知道 VS2010 和 MVC4/EF5 有问题。
  • 示例项目不使用 DbContext Generator,所有代码都是手动完成的。我的猜测是您正在使用 Ef 4.x DbContext Generator 来寻找 ADO.Net 数据服务。如果您查看 EF 5.x DbContext Generator,它说它只能与“Visual Studio 2012 RC”一起使用:visualstudiogallery.msdn.microsoft.com/…Microsoft 想要强制人们升级......
猜你喜欢
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多