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

问题描述 投票:40回答:6

我的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);
        }
    }
}
c# asp.net asp.net-mvc asp.net-mvc-4
6个回答
94
投票

确保你引用了汇编System.Web.Http.WebHost.dll。这就是GlobalConfiguration的用武之地。


43
投票

使用.NET Framework 4.5.1,可以在System.Web.Http中找到GlobalConfiguration:

PM> Install-Package Microsoft.AspNet.WebApi.WebHost

17
投票

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

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

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


0
投票

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

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

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


0
投票

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

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

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.