Вопрос по c#, .net, azure – Не удалось загрузить файл или сборку 'System.Net.Http' или одну из ее зависимостей

7

Возможно соответствующая информация: у меня есть веб-приложение, которое я создал с помощью .net 4.5. Я хотел развернуть в Azure 's Веб-сайты, но он поддерживает только .net 4.0, поэтому я понизил проект до .net 4.0. Это все еще работает, когда работает локально.

Когда я публикую в Azure, я получаю эту ошибку:

Не удалось загрузить файл или сборкуSystem.Net.Http» или одна из его зависимостей. Расположенная сборкаОпределение манифеста не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Я попытался удалить Web API с помощью nuget и прочитать его, как предложил другой вопрос по SO, но у меня все еще остается та же проблема.

Я попытался закрыть / открыть VS и очистить / построить.

Есть ли решение сейчас? Blaise
@spender только что проверил, и они уже установлены в true, к сожалению. знак равно какие-нибудь другие идеи? Kyle
Как насчет щелчка правой кнопкой мыши на ссылке (ссылках), добавленной nuget, выбора свойств и настроек?скопировать локальный правда? spender
Он жалуется на несоответствие [AssemblyVersion]. System.Net.Http поддерживается только для .NET 4.5, поэтому это должно быть частью проблемы. Hans Passant
@HansPassant Кажется, что автоматически добавляется, если я добавляю Web API в свой проект, что предполагается .net 4.0, верно? И, кажется, локально работает нормально ... Не уверен, как заставить это работать на Azure. Kyle

Ваш Ответ

5   ответов
0

У меня была такая же проблема с приложением asp.net с некоторыми веб-заданиями, развернутыми в той же службе приложений Azure. Это было решено путем ссылки на один и тот же System.Net.Http (пакет nuget) из всех проектов.

0

Azure теперь поддерживает .Net 4.5. На вкладке конфигурации вы можете выбрать .Net Framework версии V3.5 или V4.5. У меня есть несколько веб-приложений MVC с множеством вспомогательных библиотек DLL, все они скомпилированы в V4.5. Azure не поддерживает V 4.5.1 (из выпуска VS 2013 RC).

3

Я решил аналогичную проблему (System.Web.Http и System.Net.Http.Formatting), удалив ссылку на ссылку на проблему (которая была указана в моей папке установки .Net) и заменив ее ссылочным файлом в папке пакетов это было установлено пакетом NuGet Microsoft.AspNet.WebApi.

Я нашел недостающую зависимость (System.Net.Http.Formatting) в ...\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll Micah Zoltu
0

System.NET.HTTP.dll зависит только от System.dll, System.Core.dll и mscorlib.dll.

Убедитесь, что в вашем пакете развертывания есть эта DLL (System.NET.HTTP.dll) (вы можете выполнить RDP-соединение и проверить папку развертывания). Играть с "Копировать на локальный " свойство ссылки, иливключить эту DLL в ваш проект на корневом уровне и установить тип "содержание» в свойствах.

Также System.Net.Http.dll также поддерживается для .NET 2.0, как я вижу - это может вызвать проблему. Поэтому в дополнение к вышесказанному попробуйтеустановить свойство ссылки "Конкретная версия " = правда

2

У меня такая же проблема. Однако обновление версий сборки, копирование локальных и определенных настроек версии не решило мою проблему. В конфигурации моего приложения я развертываю веб и рабочую роль в облачной службе. После создания службы на вкладке конфигурации я установил для операционной системы Windows Server 2012 R2, чтобы получить поддержку .Net Framework 4.5.1. Но ошибка все же произошла.

В ходе дальнейших исследований я обнаружил, что файл * .cscfg для моей облачной службы переопределяет настройку портала с неясной настройкой osFamily «3»., Когда я начинал свой проект, он был на MVC3 и еще не имел WebAPI и фреймворка 4.5.1. osFamily 3 была последней в то время.

В моем последнем развертывании я обновил свой сайт до платформы 4.5.1 и MVC5. Я убедился, что это работает локально на моей машине для разработки. Но это неt работать после развертывания с ошибкой ссылки System.Net.Http.Formatting версии 4.0.0.0 не найден. Позже я увидел журнал развертывания, который показал ошибку источника "

Функция с именем NetFx451, которая требуется для загруженного пакета, недоступна в ОС *, выбранной для развертывания. "

Вот статья в блоге, которая привела меня к решению изменить настройку osFamily на 4. Затем мой сайт заработал после нового развертывания.

http://tech.trailmax.info/2014/02/azure-deployment-the-feature-named-netfx451-that-is-required-by-the-uploaded-package-is-not-available-in-the- ОС подобранный-для-развертывания /

Похожие вопросы