You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web Api运行提示找不到System.Net.Http 4.0.0.0程序集如何解决

报错信息:No se puede cargar el archivo o ensamblado 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
报错含义:无法找到对应版本的System.Net.Http程序集

问题原因
  • .NET Framework内置库与NuGet包冲突:若项目目标框架为.NET Framework 4.7.1及以上版本,框架本身已内置System.Net.Http程序集,手动安装的NuGet版4.2.0.0会与内置版本产生冲突,导致绑定重定向规则不生效。
  • 引用属性配置错误:项目中System.Net.Http引用的「特定版本」属性设为True,或「复制本地」属性设为False,会导致运行时无法加载到正确版本的程序集。
  • 父级配置覆盖:如果Web API部署在IIS子应用下,父级站点web.config中优先级更高的System.Net.Http绑定重定向规则,会覆盖当前项目的配置。
  • 项目文件残留旧引用:.csproj项目文件中残留旧版本System.Net.Http的引用节点,与当前添加的4.2版本引用产生冲突。
解决方案

步骤1:调整引用属性

打开Visual Studio解决方案资源管理器,展开项目的「引用」节点,找到System.Net.Http引用,右键点击选择「属性」:

  • 将「特定版本」设置为False
  • 将「复制本地」设置为True

步骤2:处理版本冲突

根据项目实际场景二选一:

  • 若项目目标框架为.NET Framework 4.7.1及以上:直接卸载NuGet安装的System.Net.Http包,使用框架自带版本即可,同时修改web.config绑定重定向规则:
<dependentAssembly>
  <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
  • 若确实需要使用4.2.0.0版本:先卸载所有System.Net.Http相关NuGet包,重新安装4.2.0版本,安装完成后确认web.config的重定向规则被正确更新。

步骤3:清理缓存重新生成

  • 右键解决方案选择「清理解决方案」
  • 关闭Visual Studio,删除项目根目录下的bin、obj文件夹,以及.vs隐藏文件夹
  • 重新打开项目,右键选择「重新生成解决方案」后运行测试

步骤4:排查IIS父级配置冲突

如果是部署在IIS子应用下出现的问题,可在当前项目的绑定重定向规则前添加<remove>节点,移除继承的父级配置:

<dependentAssembly>
  <remove name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
  <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>

步骤5:清理项目文件残留引用

右键项目选择「卸载项目」,再右键选择「编辑.csproj文件」,搜索所有System.Net.Http相关的引用节点,仅保留一个正确的4.2版本引用,删除所有旧版本残留节点后重新加载项目生成即可。

内容的提问来源于stack exchange,提问作者jstuardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:15:06