Ошибка после обновления с ASP MVC 3 Beta на RC - PullRequest
3 голосов
/ 02 декабря 2010

После того, как я обновил свое приложение ASP MVC 3 с бета-версии до версии-кандидата, я столкнулся с этой ошибкой:

{"Method not found: 'Void System.Web.Mvc.GlobalFilterCollection.Add(System.Object, System.Nullable`1<Int32>)'."}

Ошибка возникает в Global.asax внутри этого кода:

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters); // <-- Here
        RegisterRoutes(RouteTable.Routes);
    }

Вот мой RegisterGlobalFilters()

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

Вот подробности моего System.Web.MVC.dll: alt text

Файл System.Web.MVC.dllна самом деле отсутствует в папке сборки, это должно быть здесь?alt text

Вот снимок экрана всех приложений MVC, установленных на моем компьютере, бета-версия не была установлена ​​до новой установки RC, я также установил ее через установщик Microsoft Web Platform, так что я думаю, что все должно быть в порядке: alt text

Кто-нибудь получил подсказку?

Ответы [ 3 ]

1 голос
/ 02 декабря 2010

Глядя на RC-версию System.Web.Mvc.dll в Reflector, я вижу private void AddInternal(object filter, int? order) метод.Похоже, в бета-версии это имя называлось Add.

Версия RC - 3.0.11029.0.Проверьте версию dll, имеющуюся в C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies, и, если вы видите ошибку на опубликованном / развернутом веб-сайте, проверьте и версию dll там.

Редактировать

Нашел заметку об установке в заметках о выпуске :

. Перед установкой ASP необходимо удалить ASP.NET MVC 3 Preview 1 или ASP.NET MVC 3 Beta.NET MVC 3 RC.

Я не уверен, что можно очистить, удалив бета-версию, но если вы не удалили бета-версию, вы можете удалить RC и бета-версию, а затем переустановитьRC.

0 голосов
/ 02 декабря 2010

Убедитесь, что на вашем тестовом компьютере установлена ​​правильная версия System.Web.Mvc.dll. Если в GAC установлена ​​бета-версия MVC 3, она всегда побеждает, даже если у вас есть версия RC в папке bin вашего приложения. Попробуйте выяснить, из какого каталога загружается ваша dll.

0 голосов
/ 02 декабря 2010

Вот как выглядит метод RegisterGlobalFilters в шаблоне по умолчанию приложения ASP.NET MVC 3 RC:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
}

Ваш выглядит так же? Очевидно, что второй параметр (a Nullable<int>) был удален из метода Add.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...