Не удалось загрузить файл или сборку System.Web.Http, Version = 5.2.2.0
Я только что загрузил проект Asp.Net Web Api 2.2 на рабочий сервер, и я получил ошибку, указанную в названии.
В моем Web.config у меня уже есть это:
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
Файл существует в корзине. Что может вызвать это?
Все мои файлы API веб-интерфейса Asp.Net обновлены и отображаются в версии 5.2.2. Он отлично работает на моей машине dev.
Ответы
Ответ 1
Установите Copy Local
в значение true
в свойствах для сборок System.Web.Http
и System.Web.Http.WebHost
и переустановите пакет.
Если это не решит вашу проблему, попробуйте переустановить пакет NuGet. Это, мы надеемся, исправит нарушенные зависимости. С консоли управления пакетами запустите эту команду:
Update-Package Microsoft.AspNet.WebApi -reinstall
Обязательно установите System.Web.Http.WebHost
.
Ответ 2
Для меня из "Solution Explorer" я проверил версию "System.Web.Http" в ссылках проекта, которая была 5.2.3.0, поэтому в файле web.config я изменил:
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
в
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.3.0" />
затем построить. Это сработало для меня!
Ответ 3
Добавление ниже config внутри web.cofig решило мою проблему.
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.5.0" />
</dependentAssembly>
Ответ 4
Если у вас есть сборка в GAC с другой версией, она всегда будет загружаться, а не из папки bin.
Ответ 5
Я столкнулся с такой же точной ошибкой. Это было вызвано сценарием, который я использовал для развертывания приложения, которое заменило Web.config предыдущей версией. Web.config указывал неверную версию System.Web.Http. Удаление этого шага решило проблему.
Ответ 6
Я решил проблему в следующие шаги:
- Остановка сайта на удаленном веб-сервере
- Очистка папки сайта
- Опубликуем это снова
- Запуск сайта
Публикация в один клик не заменила правильную версию dll или удаленный сайт продолжал использовать файл.
Ответ 7
Другой способ сделать это, который не требует новой сборки или обновления/переустановки. С помощью Nuget необходимо сделать следующее в config.web:
Для dll у вас проблемы с, выполните следующие действия:
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="5.2.2.0">
Сегодня у меня была проблема, и эта небольшая настройка решила ее...