Asp.net mvc HttpConfiguration缺少程序集

Asp.net mvc HttpConfiguration缺少程序集,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我正在使用MVC4构建一个站点。我甚至不能开始说我有一个奇怪的错误。这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace MyProject { public static class WebApiConfig { public static void Register(HttpConfiguratio

我正在使用MVC4构建一个站点。我甚至不能开始说我有一个奇怪的错误。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace MyProject
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}
错误消息:命名空间“System.Web.Http”中不存在程序集“HttpConfiguration”的类型或名称(是否缺少using指令或程序集引用?)

它也不能识别只读字段RouteParameter。我觉得这可能与版本有关,我的System.Web dll是4.0.0.0版

另外一条信息是,当我键入“using System.Web.”时,Intellisense确实识别.Http dll


但是,在代码中,它不识别任何参数。

我解决了它。问题是,当我创建站点时,我通过Nuget更新了所有包。然而,由于我不打算使用实体框架,我卸载了它。为了能够卸载该软件包,我还需要卸载Microsoft.AspNet.Providers.Core 1.2。。。我做到了

这个丢失的包裹把事情搞砸了。我清理了项目,重新开始。我还可以在PM控制台中使用Update Package命令,并恢复所有丢失的包。然而,由于与我所做的很少(几乎为空)的工作相比,我做了太多的混乱,我决定重新开始


无论如何谢谢你

从上周开始,我们的一个项目就遇到了这个问题。两周前,项目进展顺利&然后突然开始抛出这个例外。此项目的nuget包中未进行任何更改。即使从SVN中检出一个旧版本,也没有成功构建

出于绝望,我们将解决方案从VS2012升级到VS2013&瞧,它成功了!我们怀疑(但无法确认)Visual Studio 2013中完成的工具更新影响了Visual Studio 2012中的此库


这可能不适用于所有人,但有一个升级解决方案的选项,这似乎可以解决问题。

确保您是为Framework 4.5而不是4.0编译的。这解决了我的问题

对于其他面临这个问题的人,我的解决方案是不同的。首先,我将一个项目从.net 4.5降级到.net 4.0,但症状与上面相同:

中不存在程序集“HttpConfiguration”的类型或名称 命名空间“System.Web.Http”(是否缺少using指令或 组件参考?)

我偶然发现了一篇博文,其中解释了
Newtonsoft.Json
HttpConfiguration
之间存在链接,我从项目和
packages.config
文件中删除了对
Newtonsoft.Json
的引用,然后从package manager控制台重新安装了
Newtonsoft.Json

Install-Package Newtonsoft.Json
由于其他依赖关系,我无法从包管理控制台卸载
Newtonsoft.Json
,因此需要手动删除引用


这是文章的链接:

又是一个场景。我承认这与这个问题关系不大,因为我纯粹是Web API。然而我的搜索让我来到这里,所以

我在解决方案中有一个现有的项目,目标是框架4.5.2

当我添加一个新项目时,由于我没有给予足够的关注,它以4.5的速度运行。HttpConfiguration正式从Web API注册方法中消失

将目标更改为4.5.2解决了HttpConfiguration问题。请注意,它还引起了RouteParameter的一些其他问题:现在我有了两个定义,一个在System.Web.Http中,另一个在System.Web.UI.WebControls中。我想这很容易


我的感觉是,还有更多…

1.在解决方案资源管理器中,右键单击项目节点,然后单击添加引用

2.在“添加参照”对话框中,选择“部件”选项卡。然后在右上角的搜索框中键入“system.web.http”

3.选择要引用的组件,如果已选中,则首先删除引用,然后**再次添加引用。


再次重建项目。请让我知道它是否有效。谢谢。

当您更新并重新安装Nuget的所有AspNet软件包时,似乎没有合适的解决方案-重新启动Visual Studio拯救了我。

我在克隆以前为我工作的MVC 4.0应用程序时遇到此错误。我的问题是
Microsoft.Net.Http
NuGet包没有正确还原。我从NuGet控制台解决了这个问题:

更新包-重新安装Microsoft.Net.Http

我不得不更新Microsoft.Net.Http,经过长期的努力,它对我来说很有效


更新包-重新安装Microsoft.Net.Http

HttpConfiguration
类位于
System.Web.Http
库中。是,代码显示它正在使用System.Web.Http。但是它不识别HttpConfiguration(也不识别RouteParameter)
System.Web
程序集在System.Web.Http命名空间中包含类,这就是为什么您在那里看不到错误的原因,但是
HttpConfiguration
类在
System.Web.Http
程序集中,而不是
System.Web
中。您是否可以验证是否引用了这两个程序集?我应该右键单击并从框架中添加一个名为System.Web.Http的程序集?因为我找不到。也许这就是问题所在。为什么会这样?现在是2020年,仍然没有办法检查丢失的软件包并自动重新安装。与其手动删除,不如从Nuget控制台重新安装软件包:更新软件包–重新安装Newtonsoft.json此解决方案让我成功了一半。。。更新包后需要执行新的
安装包Microsoft.AspNet.WebApi.Core
,以最终解决问题。新的安装包Microsoft.AspNet.WebApi.Core也为我解决了问题。