1

当我访问 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 程序集,ObjectHandleOnStack retTypes) 在 System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assemblyResolver) 在 System.Web.Http.WebHost 的 System.Reflection.RuntimeAssembly.GetExportedTypes()。 WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolverassemblyResolver) 在 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.Lazy1.get_Value() 在 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage 请求) 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancelToken) 在 System.Web.Http.Dispatcher.HttpControllerDispatcher .SendAsync(HttpRequestMessage 请求,CancellationToken cancelToken)

非常感谢!

4

1 回答 1

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。

于 2012-07-26T07:42:31.050 回答