Я сделал обновление в соответствии с. http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- веб-апи-2
Я получаю ошибку. Кто-нибудь еще получил эту ошибку?
Ошибка сервера в приложении '/'
Не удалось загрузить файл или сборку 'System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.Сведения об исключении: System.IO.FileLoadException: не удалось загрузить файл или сборку 'System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Ошибка источника:
Строка 48: Строка 49: Строка 50:} Строка 51: Строка 52: защищенная пустота Application_BeginRequest (отправитель объекта, EventArgs e)
Исходный файл: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Строка: 50
Отслеживание загрузки сборки: следующая информация может быть полезна для определения, почему не удалось загрузить сборку «System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35».
=== Информация о состоянии предварительной привязки === LOG: DisplayName = System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 (указана полностью) LOG: Appbase = file: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: Initial PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Вызов сборки: ThirdPartyWebAPI, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null. === LOG: эта привязка начинается в контексте загрузки по умолчанию. LOG: использование файла конфигурации приложения: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: использование файла конфигурации хоста: C: \ Users \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: использование конфигурации компьютера файл из C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: ссылка после политики: System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 LOG: Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Teorary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http.DLL. LOG: Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Tevive Files ASP.NET / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Попытка загрузки нового файла URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: сравнение имени сборки привело к несоответствию: Major Version ERR: Не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено. Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Tevive ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL , LOG: Попытка загрузки нового файла URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: сравнение имени сборки привело к несоответствию: Major Version ERR: Не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено. Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Tevive ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL , LOG: Попытка загрузки нового файла URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: сравнение имени сборки привело к несоответствию: Major Version ERR: Не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено. Не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено. Не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено.
Трассировки стека:
[FileLoadException: не удалось загрузить файл или сборку 'System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () в d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50
[HttpException (0x80004005): не удалось загрузить файл или сборку 'System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (контекст HttpContext, приложение HttpApplication
) +9935033
System.Web.HttpApplication.RegisterEventSubshttp. .InitSpecial (состояние HttpApplicationState, обработчики MethodInfo [], IntPtr appContext, контекст HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +296[HttpException (0x80004005): не удалось загрузить файл или сборку 'System.Web.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (контекст HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (контекст HttpContext) +101TestWestWebWebWiki
Информация о версии: Microsoft .NET Framework Версия: 4.0.30319; ASP.NET версия: 4.0.30319.18408
источник
Ответы:
Я исправил это, переустановив пакет NuGet , который исправляет нарушенные зависимости. В диспетчере пакетов запустите:
источник
Чтобы устранить ошибку «Не удалось загрузить файл или сборку System.Web.Http», используйте NuGet для установки Web API 2.1 WebHost.
В обозревателе решений в ссылках щелкните правой кнопкой мыши и выберите Управление пакетами Nuget. (если нет, установите Nuget)
В окне «Управление пакетами NuGet» с левой стороны щелкните онлайн, затем в правом верхнем углу найдите веб-хост и установите веб-хост Microsoft ASP.NET Web API 2.1. (После установки кнопка установки изменится на зеленую галочку)
После этого проект перезагрузится, и при повторной сборке ошибка будет устранена, и проект будет отлажен и запущен. Ошибка исчезнет, и вы можете быть «Ресурс не найден. Просто добавьте URL (например, с localhost: 52088 / на localhost: 52088api / products)
Ваш вопрос был хорош и помог мне.
Надеюсь, этот ответ поможет!
источник
Вам необходимо добавить перенаправления сборки:
Скорее всего, вам придется сделать это еще для нескольких сборок, таких как веб-хостинг и т. Д.
источник
System.Web.Http
.Или вы можете сделать это из консоли диспетчера пакетов NuGet
И тогда вы сможете добавить ссылку на System.Web.Http.WebHost 5.0
источник
Когда я установил Web Api 2.2 help, эта ошибка началась. Я добавил это в web.config, и это решило мою проблему.
источник
Я просто установил
Copy Local = true
недостающую сборку, и это сработало. Это, конечно, происходит, если щелкнуть правой кнопкой мыши отсутствующую ссылку (которая указана в сообщении об ошибке) и выбрать свойства; как показано ниже:Это должно решить одну проблему, так как может быть несколько сборок, вызывающих проблему - я выбрал все сборки и щелкнул по ним правой кнопкой мыши; выбранные свойства; и установите для них всех значение Copy Local = true; и затем переиздать.
источник
Правильное решение для решения этой проблемы, следуя шагам
, Обновите Visual studio, если у вас более старая версия до 15.5.4 (необязательно)
Удалить все перенаправления привязки из web.config
Добавьте это в файл csproj:
Сложение.
В папке bin должен быть
(WebAppName).dll.config
файл.В нем должны быть перенаправления. Скопируйте их в web.config
Удалите приведенный выше фрагмент из файла csproj снова
Он должен работать
Detailed Blog
источник
Для меня это было только с этой ошибкой в производственной среде, а не на локальной машине; Решено было удалить содержимое папки / bin, а затем восстановить его снова.
источник
Просто очевидный, но полезный совет ... не забудьте проверить, что новая версия, указанная в привязке сборки webconfig, - это та же версия, на которую вы ссылаетесь в ссылках на ваш проект. (т.е. когда я пишу это ... это будет 5.1.0.0, если вы недавно сделали NUGet на System.Web.Http
источник
источник
Это может кому-то помочь.
Я решил пойти с приложением MVC4.
запустить проект, работал
Затем установил несколько пакетов, таких как
Microsoft ASP.NET WEB API 2.2 (4 пакета)
Microsoft ASP.NET WEB API 2.2 Страница справки
Microsoft ASP.NET WEB API 2.2 OWIN
запустить проект, та же ошибка, что и в вопросе
Решение:
В web.config
Задача решена
но затем обнаружена ошибка исправления. Чтобы устранить ее, перейдите в папку VIEW вашего проекта MVC4, найдите файл
second
web.config и измените версию с 2.0.0.0 на 3.0.0.0, как показано ниже.источник
В моем случае я фактически пропустил мой
web.config
, который имел соответствующие перенаправления привязки. Восстановлениеweb.config
исправило ошибку.источник
Я мог бы решить аналогичную проблему с System.Net.HTTP, добавив ссылку на сборку в app.config основного приложения.
источник
Я нашел решение! Удалите папку с именем package в каталоге проекта, а затем пересоберите ее для запуска.
источник
источник
ДА!!!
В моем случае работает нормально .... thnkz
источник
Я ничего не сделал, просто скопировал DLL-файлы папки Bin для разработки в онлайн- папку Bin, и у меня все заработало.
источник
Как уже говорили другие, просто переустановите пакет MVC в свой веб-проект с помощью nuget, но обязательно добавьте пакет MVC в любые проекты в зависимости от веб-проекта, например, модульные тесты. Если вы создадите каждый включенный проект по отдельности, вы увидите, что те требуют обновления.
источник
У меня была та же проблема, и переустановка пакета не работает.
Мое приложение работает в LocalIIS (не IIS EXPRESS). Я включаю сборку трассировки загрузки и выясняю, что она хочет загрузить System.Web.Http- загрузку из-под временной температуры. поэтому удалите все папки catch в нем.
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Временные файлы ASP.NET [мое приложение]
источник
Я решил эту проблему, отменив изменения, внесенные в nuget
web.config
после запускаnuget
. Вернуть изменения в предыдущую рабочую версию.источник
Для меня эта проблема решилась переустановкой страницы справки Microsoft ASP.NET Web API 2.2 и пакетов Microsoft ASP.NET Web API 2.2 OWIN . Я переустанавливал оба одновременно, но я думаю, что это был первый, который решил проблему.
Я попробовал первые несколько решений, предлагаемых здесь, но это не помогло, затем я сравнил свои зависимости с теми, что были в проекте, который работал (из курса по Pluralsight), и две зависимости выше были более низкой версией (5.0.0). ) поэтому я обновил их до 5.2.3, и он начал работать.
источник
У меня было это из службы WCF. Для меня (поскольку проблема отображалась в локальном dev), мне просто пришлось удалить содержимое папки bin под решением. Перестройка работает нормально еще раз.
источник
Версия ASP.NET: 4.0.30319.18408 принадлежит .Net4.5, а версия System.Web.Http = 4.0.0.0 совместима с .NET4.0. Таким образом, версии, которые у вас есть, не совместимы. Вам следует обновить System.Web.Http до версии 5.0.0.0, которая совместима с .Net4.5
источник
У меня была похожая проблема. Все работало раньше. Первоначально он был создан с использованием веб-форм, а затем для некоторых вещей был добавлен веб-API.
В Visual Studio сработало изменение настроек профиля публикации с Release на Debug. Странно, но вот что сработало. Так что делимся здесь.
источник
Эта проблема возникла при развертывании в Azure с помощью функции публикации. Не забудьте очистить файлы в месте назначения.
Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination
Это решило мою проблему, на случай, если люди будут охотиться за этим, как я. В моем проекте / решении все было одинаковой версией, но не в том месте, куда я развертывал.
источник
Если вы используете несколько проектов для решения и вызываете метод в одном проекте для другого проекта, убедитесь, что все проекты (называемые проектом и проектом вызывающей стороны) используют уникальную
'System.Net.Http'
версию .источник
Измените флаг версии Specfic с true на false для dll в ссылке
источник
У меня была та же проблема с System.Web.Http.WebHost, версия = 5.2.6.0, на которую ссылались, но последний пакет NuGet был 5.2.7.0. Я отредактировал файлы web.config, переустановил пакет NuGet, затем отредактировал файлы проектов visual studio для всех моих проектов, чтобы убедиться, что ссылки на 5.2.6.0 не сохранились. Даже после всего этого проблема сохранялась.
Затем я посмотрел в папке bin для проекта, который выдавал исключение, где я нашел DLL для одного из моих других проектов, который не является зависимостью и никогда не должен был быть там. Я удалил поврежденную DLL (которая была скомпилирована с использованием версии 5.2.6.0 System.Web.Http.WebHost), перестроил проблемный проект, и теперь он работает.
источник