Как устранить ошибку "Попытка прозрачным методом безопасности" System.Web.Http.GlobalConfiguration.get_Configuration() - программирование
Подтвердить что ты не робот

Как устранить ошибку "Попытка прозрачным методом безопасности" System.Web.Http.GlobalConfiguration.get_Configuration()

Я создал решение с двумя проектами: MVC 4 и библиотекой классов. Решение компилируется и работает нормально. Затем я устанавливаю пакет "Microsoft.AspNet.WebApi.OData -pre, чтобы задействовать функциональность OData WebApi. Когда я это сделаю, во время выполнения я получаю следующую ошибку:

Попытка прозрачным методом безопасности "System.Web.Http.GlobalConfiguration.get_Configuration()" для доступа к критическому типу безопасности "System.Web.Http.HttpConfiguration" не удалось.

Когда WebApiConfig.Register(GlobalConfiguration.Configuration) работает в Global.asax

Как только я это сделаю, удаление пакета не похоже на исправление. Очевидно, что он удаляет компоненты OData, но затем оставляет все, что вызывает сборку. удаление с помощью -RemoveDependencies удаляет ВСЕ ссылки WebApi в библиотеке, и я не могу вернуть их в рабочее состояние.

В каком пакете я вхожу и как включить OData WebApi в приложении MVC4 от vanilla?

4b9b3361

Ответ 1

Если вы создаете приложение MVC 4 из своего шаблона, то вы устанавливаете Web API 4.0. если вы используете

install-package 'Microsoft.AspNet.WebApi.OData -pre

Вы будете зависить от ASP.NET Web API 5.0 rc.

Мое предложение - использовать шаблон "Пустое ASP.NET веб-приложение", а не шаблон MVC 4.0.

Ответ 2

Это несоответствие сборок для данной версии WebAPI. Моя неудалась, потому что я ссылался на несоответствующую версию System.Web.Http.WebHost. Поэтому вы можете...

  • Установите последний WebAPI из NuGet

    -OR -

  • Убедитесь, что все ваши пакеты Microsoft.AspNet.WebApi.* находятся в одной версии

Ответ 3

Я запускал "пакет обновления Microsoft.AspNet.WebApi" в консоли диспетчера пакетов в VS и работал как шарм.

Ответ 4

Вам нужна предварительная версия веб-API OData? Если это так, вам необходимо обновить все другие пакеты веб-API в соответствии с этой версией. Если нет, просто сделайте,

install-package 'Microsoft.AspNet.WebApi.OData

без опции -pre