Luc*_*tos 50 c# asp.net-mvc-4 asp.net-web-api
我在我的解决方案中创建了一个MVC 4 Web API应用程序,但我现在收到2个错误,我需要一些帮助.
'System.Web.Http.HttpConfiguration'不包含'MapHttpAttributeRoutes'的定义,也没有扩展方法'MapHttpAttributeRoutes'接受类型为'System.Web.Http.HttpConfiguration'的第一个参数'(你是否缺少using指令)或汇编参考?)
以下代码发生此错误
文件: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 }
);
}
}
Run Code Online (Sandbox Code Playgroud)
另一个是Global.asax
'System.Web.Http.GlobalConfiguration'不包含'Configure'的定义
文件: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);
}
}
Run Code Online (Sandbox Code Playgroud)

UPDATE
通过Nuget安装WebAPI WebHost(@ sa_ddam213的建议)它解决了一些问题,但现在运行我的应用程序时出现此错误
无法加载文件或程序集"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>
Run Code Online (Sandbox Code Playgroud)
Dan*_*ana 96
强制重新安装WebAPI可以完成这项工作:
update-package microsoft.aspnet.webapi -reinstall
Run Code Online (Sandbox Code Playgroud)
gar*_*ryp 12
我做了:
get-project <project_name> | uninstall-Package Microsoft.AspNet.WebApi.WebHost -force
Run Code Online (Sandbox Code Playgroud)
然后重新安装(特定版本与其他项目中的版本一致)
get-project <project_name> | install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.2
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
小智 5
请尝试通过在nugetmanager控制台上运行以下命令来更新软件包
update-package microsoft.aspnet.webapi.webhost -reinstall
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53838 次 |
| 最近记录: |