无法加载文件或程序集System.Web.Http,版本= 5.2.2.0
我刚刚上传了一个Asp.Net Web Api 2.2项目到生产服务器,我得到了标题中指出的错误。无法加载文件或程序集System.Web.Http,版本= 5.2.2.0
在我的web.config我已经有这样的:
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
文件并在bin存在。什么会造成这种情况?
我所有的Asp.Net Web API文件都是最新的,并显示版本5.2.2。它可以在我的开发机器上正常工作。
在System.Web.Http
和System.Web.Http.WebHost
程序集的属性中设置Copy Local
到true
并重新部署程序包。
如果这完全不能解决您的问题,请尝试重新安装NuGet软件包。这将有望纠正错误的依赖关系。从包管理控制台,运行以下命令:
Update-Package Microsoft.AspNet.WebApi -reinstall
务必安装System.Web.Http.WebHost
为好。
如果您在GAC中拥有不同版本的程序集,它将始终加载,而不是从bin文件夹中加载的。
这简直是不真实的。他发布的dependentAssembly配置确保了这一点。 – 2014-12-02 16:32:11
这是事实并非如此。如果您在GAC中有一个程序集,而在文件系统中有另一个程序集,名称和公钥,请尽可能地尝试,即使是加载其字节,但您始终会从GAC加载该程序集。尝试一下。 – 2014-12-02 16:47:31
对于我来说,从 “解决方案资源管理” 我查了一下 “System.Web.Http” 这是5.2.3.0的版本,所以我改:
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
到
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.3.0" />
再建。它为我工作!
这对我有效! – Roboblob 2016-07-13 14:28:35
另一种方式来做到这一点,它不需要一个新的版本或更新/重新利用的NuGet是在做的config.web如下:
对于你有问题,随着该DLL,执行以下操作:
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="5.2.2.0">
今天我有一个问题,而这个小调整解决它......
我跑进了完全相同的错误。这是由我用来部署将Web.config替换为以前版本的应用程序的脚本引起的。 Web.config指定了System.Web.Http的错误版本。删除该步骤解决了问题。
重新安装它为我做了。 – 2015-12-17 19:32:35
没有为我工作 – 2017-10-26 16:45:26