Azure 失败无法加载文件或程序集'System.Net.Http,版本=4.2.0.0

Azure failing Could not load file or assembly 'System.Net.Http, Version=4.2.0.0

我收到这个错误有一段时间了。

奇怪的是,我只在将应用程序发布到 Azure 时才收到此错误,在本地没问题。

我厌倦了将重定向更改为:

 <dependentAssembly>
  <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.1.1.0" />
</dependentAssembly>

我在网上看过,但运气不佳。

该应用本身是一个使用框架 4.7.2 的 Umbraco 网站

任何帮助都会很棒!

更新 - 我将 System.Net.Http 作为对我的 Web 项目的引用并将本地副本设置为 true,这意味着 DLL 已发布但现在出现错误:

我尝试添加以下内容:

 <add assembly="System.Web.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

我也试过这个:

 <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
  </dependentAssembly>

希望对您有所帮助

解决这个问题应该相当简单:在您的 web.config 中找到 compilation\assemblies 部分并在 System.Net.Http 下添加 System.Web.Http 程序集:

<add assembly="System.Web.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

另一件可能有用的事情是,如果您在编译代码时遇到错误,请尝试参考 System.Web.Http 版本 4.2 并将 构建操作 设置为 copy本地.

更多细节,你可以参考这个article

我设法通过删除对 System.Http.Net 的所有引用、从 NuGet 卸载它、删除 DLL 形式((c:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib)

然后我通过 NuGet 再次安装它,但安装的是最新版本,并从 web.config 中删除了所有额外的绑定重定向。

这就解决了这个问题。

谢谢