Проект веб-сайта ASP.NET строится, но при публикации возникают ошибки

У нас есть проект веб-сайта .NET 4, созданный с использованием Visual Studio 2013, он ссылается на System.Net.Http .dll.

Это строка в web.config, которая загружает .dll:

<add assembly="System.Net.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

Проект строится нормально, но когда мы пытаемся «Опубликовать веб-сайт», он выдает следующую ошибку:

Имя типа или пространства имен «Http» не существует в пространстве имен «System.Net» (вам не хватает ссылки на сборку?)

Похоже, что сборка может загружаться из GAC, мы попытались поместить сборку в папку BIN приложения, но это не имеет значения — она по-прежнему отображается как ссылка GAC на страницах свойств проекта.

Мы также пытались добавить:

<runtime>
    <assemblyBinding>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <codeBase version="1.0.0.0" href="/bin/System.Net.Http.dll"/>
      </dependentAssembly>
    </assemblyBinding>

As suggested here: Could not load file or assembly System.Web.Http.WebHost after published to Azure web site

Но это, похоже, тоже не работает.

Мы изменили целевую структуру на версии 3.5 и 4.5, но безрезультатно.

Мы пробовали публиковать с нескольких разных машин.

РЕДАКТИРОВАТЬ: мы попробовали предложение пакета nuget в RobAda, и оно не дало желаемого эффекта, мы все еще получаем ошибки.


person Mack    schedule 24.11.2015    source источник
comment
@coder, спасибо, мы попробовали это, и, к сожалению, когда мы пытаемся, проект не будет собираться из-за устаревшего кода - кажется, что мы пока застряли на 4.0.   -  person Mack    schedule 24.11.2015


Ответы (2)


Звучит так, как будто вы пытаетесь впихнуть что-то туда, куда оно не подходит/не подходит.

Одним из возможных архитектурных подходов было бы выделение функциональности в виде решения.

Если временные ограничения являются проблемой, и это возможно, это может быть решением ваших проблем.

Однако в долгосрочной перспективе: стоит убедиться, что вы идете в ногу со временем, поскольку с течением времени у вас будет больше таких проблем, конечно, к этому нужно подходить прагматично...

person VixterJ    schedule 24.11.2015
comment
Возможно, приложение с доказательством концепции публикуется нормально, и мы могли бы разместить его на отдельном домене, попробуем и свяжемся с вами. - person Mack; 24.11.2015

Я видел ту же проблему в приложении для друзей, нам пришлось немного покопаться, но в итоге мы обнаружили, что вам нужно установить этот пакет nuget:

https://www.nuget.org/packages/Microsoft.Net.Http

Затем вам нужно будет добавить ссылку на System.Net.Http, чтобы она не выдавала указанную ошибку.

person RobAda    schedule 24.11.2015