当我有程序集的时候,WebAPI发现了引用错误
我在我的解决scheme中创build了一个MVC 4 Web API应用程序,但是现在我得到了2个错误,我需要一些帮助。
'System.Web.Http.HttpConfiguration'没有包含'MapHttpAttributeRoutes'的定义,也没有find接受'System.Web.Http.HttpConfiguration'types的第一个参数的扩展方法'MapHttpAttributeRoutes'(你是否缺lessusing指令或组件参考?)
下面的代码发生此错误
文件:WebApiConfig.cs(在App_Start文件夹)
using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web; public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } }
另外一个,就是Global.asax
“System.Web.Http.GlobalConfiguration”不包含“configuration”的定义
文件:Global.asax.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Http.WebHost; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } }
UPDATE
通过Nuget安装WebAPI WebHost(@ sa_ddam213的build议)后,它解决了一些问题,但现在运行我的应用程序时,得到了这个错误
无法加载文件或程序集“System.Net.Http”或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配
Web.config文件具有程序集
<dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0"/> </dependentAssembly>
强制重新安装WebAPI可以完成这项工作:
update-package microsoft.aspnet.webapi -reinstall
我做了:
get-project <project_name> | uninstall-Package Microsoft.AspNet.WebApi.WebHost -force
然后重新安装(与其他项目中的特定版本一致)
get-project <project_name> | install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.2
这解决了我的问题。
我在我的项目中卸载了一些nuget包,包括MVC,并重新安装。 解决。 谢谢大家的帮助。
更新你的NuGet包。 为我工作。
请尝试在nugetmanager
控制台上运行以下命令来更新您的软件包
update-package microsoft.aspnet.webapi.webhost -reinstall
特别是对我来说,我从工作解决scheme的TFS下载,并得到了错误
System.Web.Http.HttpConfiguration' does not contain a definition for 'MapHttpAttributeRoutes' and no extension method 'MapHttpAttributeRoutes'
我正要重新安装web api,但是我知道过去的经验,安装项目的顺序的依赖关系链可能会带来一些戏剧性。
JSON被击中或错过,因为有时我看到更新的JSON的力量和卸载一个较新版本的另一个软件包,并安装一个旧版本,因为它认为“它知道最好的。
对我来说,通过nuget 更新JSON是我所要做的。
1)检查你的解决scheme文件夹包\ Microsoft.AspNet.WebApi.Client.5.2.3 \ lib \ net45有System.Web.Http.dll是否可用。 它应该在那里。 如果不可用,请从其他正在运行的项目包文件夹中复制。 2)从您的项目中删除System.Web.Http.dll的引用。 3)通过指向包\ Microsoft.AspNet.WebApi.Client.5.2.3 \ lib \ net45 \ System.Web.Http.dll的新.dll添加新的引用