MVC4中的Global.asax.cs页面中的问题

时间:2014-01-28 09:49:13

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我是我的ASP.NET MVC 4项目,我的Global.asax.cs页面显示错误

 WebApiConfig.Register(GlobalConfiguration.Configuration);
  

当前上下文中不存在名称“GlobalConfiguration”

我做了很多控制器和视图以及所有......我如何解决这个问题并恢复我的项目?

以下是我的上下文代码的其余部分

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

namespace .....
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }
}

7 个答案:

答案 0 :(得分:95)

确保引用了程序集System.Web.Http.WebHost.dll。这就是GlobalConfiguration的地方。

答案 1 :(得分:44)

使用.NET Framework 4.5.1,可在System.Web.Http

中找到GlobalConfiguration
PM> Install-Package Microsoft.AspNet.WebApi.WebHost

答案 2 :(得分:17)

Update-Package Microsoft.AspNet.WebApi.WebHost -reinstall

这对我有用。我遇到的问题是引用没有在Update-package上正确更新,甚至再次删除和安装包。

上面的命令会重新安装所有依赖项,并且每当我遇到nuget包引用问题时,通常都会执行此操作。

答案 3 :(得分:0)

同时尝试与David Bohunek建议的相反(没有冒犯)。我试过戴维斯的建议无济于事。然后我将删除直接在" Assemblies"中引用的引用。部分。

然后我删除了Web Api 2.2和Web Api 2.2 Web Host Nugets,执行了干净,然后JUST添加了Web Api 2.2 Web Host NuGet。

试试吧。祝你好运,它对我有用。

答案 4 :(得分:0)

在我的基于4.5的asp.net webform中,在global.aspx中添加System.Web.Routing dll和以下导入解决了问题

<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Http" %>

答案 5 :(得分:0)

我尝试了上面列出的大多数修复无济于事。我相信10个中的9个通常会被上面的帖子解决,但是这个错误,但这些都没有帮助我。

我对此错误的修复是,我正在重命名我的命名空间,并且对命名空间有两个不同的引用,这最终导致了我的问题。由于我想用我开始以外的其他方式更新命名空间,我最终通过将我的命名空间更改为WebApiConfig.cs中的新命名空间来修复此问题。显然,它是我没有使用较新的命名空间名称的最后一个文件之一。

好吧,一旦我改变了那么我的错误就消失了。此外,同一问题的另一个修复是指定using old namespace name;,它也暂时修复了它,这让我只需要在WebApiConfig.cs中使用新名称重命名它。

答案 6 :(得分:0)

就我而言,我在Glabal.asax中遇到了类似的问题:

The name 'AreaRegistration' does not exist in the current context.

我在System.Web.Mvc中已经有了Global.asax.cs命名空间,但是编译器对此并不了解,也就是说,找不到AreaRegistration类。

解决此问题的原因是在Visual Studio中的Package Manager Console中执行以下命令:

PM> Update-Package -reinstall

NuGet重新安装了项目的所有软件包后,缺少的类名出现,代码成功构建。

Visual Studio \ NuGet还原管道中发生了某些问题...