Как устранить ошибку "Попытка прозрачным методом безопасности" 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?
Ответы
Ответ 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