ASP.NET网站项目可以构建,但在发布时出现错误

8
我们有一个使用Visual Studio 2013创建的.NET 4网站项目,它引用了System.Net.Http .dll。
这是web.config中加载.dll的代码行:
<add assembly="System.Net.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

该项目可以成功构建,但是当我们尝试“发布网站”时,会出现以下错误:
“System.Net”命名空间中不存在“Http”类型或命名空间(是否缺少一个程序集引用?)
看起来程序集可能正在从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>

建议如下:在发布到 Azure 网站后,无法加载文件或程序集 System.Web.Http.WebHost

但是这似乎也没有起作用。

我们已经将目标框架更改为 3.5 和 4.5,但没有任何效果。

我们尝试从几台不同的计算机进行发布。

编辑:我们尝试了 RobAda 建议的 NuGet 包,但它没有产生预期的效果,我们仍然会出现错误。


@程序员,谢谢你的建议。我们已经尝试过了,但不幸的是,由于遗留代码的原因,项目无法构建 - 看起来我们目前被困在4.0上。 - Mack
2个回答

4

我在一个朋友的应用程序上看到了同样的问题,我们需要挖掘一段时间,但最终发现您需要安装此nuget包:

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

然后,您需要添加对System.Net.Http的引用,以避免出现所述错误。


1
似乎你正在试图把某些东西硬塞到不合适的地方。
一种可能的架构方法是将功能分离成一个解决方案。
如果时间限制是一个问题,并且这是一个可能性,那么它可能是你问题的解决方案。
长期来看:值得确保你跟上时代的步伐,因为随着时间的推移,你会遇到更多类似的问题,当然这必须以实用主义的方式来处理...

这是一个可能性,他们的概念验证应用程序发布得很好,我们可以在单独的域上进行托管,我们会尝试一下并回复您。 - Mack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接