Проблема на странице Global.asax.cs в MVC4

I мой проект ASP.NET MVC 4, моя страница Global.asax.cs показывает ошибку на

 WebApiConfig.Register(GlobalConfiguration.Configuration);

Имя "GlobalConfiguration" не существует в текущем контексте

Я сделал много контроллеров и Views и все... Как я могу решить эту проблему и восстановить мой проект?

Вот остальная часть моего кода для контекста

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);
        }
    }
}

Ответы

Ответ 1

Убедитесь, что у вас есть сборка System.Web.Http.WebHost.dll. Это где GlobalConfiguration.

Ответ 2

С .NET Framework 4.5.1 GlobalConfiguration находится в System.Web.Http:

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

Ответ 3

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

Это сработало для меня. Я столкнулся с проблемами, когда ссылка не обновлялась правильно в пакете обновления или даже удаляла и устанавливала пакет снова.

Вышеупомянутая команда переустанавливает все зависимости и обычно делает трюк всякий раз, когда я сталкиваюсь с проблемой ссылки на пакет nuget.

Ответ 4

Также попробуйте сделать противоположное (без обид) то, что предлагает Дэвид Бохунек. Я попробовал предложение Давидса, но безрезультатно. Затем я бы удалил эту ссылку, на которую ссылался непосредственно в разделе "Ассемблемы".

Затем я удалил веб-узел Api 2.2 и Web Api 2.2 с веб-хостингами, выполнил чистую, а затем JUST добавил веб-узел веб-узла NuGet Web Api 2.2.

Попробуй. Удачи, это сработало для меня.

Ответ 5

в моей веб-форме asp.net на основе 4.5, добавление System.Web.Routing dll и ниже импорта в global.aspx разрешило проблему

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

Ответ 6

Я попытался большинство исправлений, перечисленных выше, но безрезультатно. Я уверен, что 9 из 10, как правило, решаются с помощью постов выше, но из-за этой ошибки, но ни один из них мне не помог.

Мое исправление этой ошибки заключалось в том, что я переименовывал свое пространство имен и имел две разные ссылки на пространство имен, что в итоге привело к моей проблеме. Поскольку я хотел обновить пространство имен чем-то другим, чем я начал, я решил исправить эту проблему, изменив свое пространство имен на более новое в моем WebApiConfig.cs. Очевидно это был один из последних файлов, которые я не использовал более новое имя пространства имен.

Ну, как только я изменил это, мои ошибки исчезли. Кроме того, еще одно исправление для этой же проблемы заключалось в указании using old namespace name; который также исправил это временно, что заставило меня просто переименовать его в WebApiConfig.cs с новым именем.

Ответ 7

В моем случае, что решило проблему, выполнив следующую команду в Package Manager Console в Visual Studio:

PM> Update-Package -reinstall

После того, как NuGet переустановил пакеты, появились отсутствующие имена классов и код был успешно собран.

Что-то не работает в конвейере Visual Studio...