无法加载文件或程序集“System.Web.Http,版本=5.0.0.0”

问题描述 投票:0回答:3

将 Microsoft.Aspnet.Webapi.Webhost 包安装到我的 Web api 项目后,最终出现以下异常:

无法加载文件或程序集“System.Web.Http,版本=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。找到的程序集的清单定义不 匹配装配参考。 (HRESULT 异常:0x80131040)

asp.net-web-api nuget-package assembly-resolution
3个回答
37
投票

我通过重新安装 NuGet 包修复了这个问题,这纠正了损坏的依赖关系。从包管理器中,运行 Update-Package Microsoft.AspNet.WebApi -reinstall。


3
投票

当我使用 nugget 中的 System.Web.Http.Cors 安装时,出现上述错误。然后我将 webApi 包更新到最新版本。修复了问题。


0
投票

听起来您在 IIS 中遇到了程序集绑定问题,更新 web.config 文件解决了该问题。当应用程序依赖于开发环境和生产环境之间不同的特定版本的程序集时,这是一种常见情况。

您添加的 dependentAssembly 元素指定程序集标识和绑定重定向,这指示 .NET 运行时在应用程序请求程序集时使用指定版本的程序集。以下是每个部分的功能的快速细分:

assemblyIdentity:通过名称、公钥令牌和区域性来标识程序集。 BindingRedirect:将对旧版本程序集的请求重定向到较新版本,确保应用程序使用正确的程序集版本。 定期比较开发和生产配置以避免此类问题是一个很好的做法。如果您在团队中工作或频繁部署,请考虑实施自动检查或使用包括同步配置的部署策略。

如果您需要任何进一步的帮助或对 IIS 或 web.config 有更多疑问,请随时询问!

© www.soinside.com 2019 - 2024. All rights reserved.