为了账号安全,请及时绑定邮箱和手机立即绑定

无法在MVC4 Web API中加载文件或程序集'System.Net.Http

无法在MVC4 Web API中加载文件或程序集'System.Net.Http

慕村9548890 2019-11-29 09:21:17
我有一个奇怪的问题。我使用MVC 4和新的Web API开发了一个应用程序,并且在本地运行良好。我在服务器上安装了MVC4并部署了该应用程序。现在我得到以下错误:无法加载文件或程序集'System.Net.Http,版本= 2.0.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误及其起源的更多信息。有趣的是,我本地在package文件夹或ASP.NET MVC 4 \ Assemblies文件夹中拥有的System.Net.Http版本是1.0.0.0。实际上,我从项目中删除了对System.Net.Http的引用,但是仍然收到相同的消息。我对它从何处获得2.0.0.0引用以及为什么它将在本地但不在服务器上工作感到困惑。查看nuget依赖项:ASP.NET WEb API核心库(Beta)依赖于System.Net.Http.Formatting。而System.Net.Http.Formatting取决于System.Net.Http。我想那是从哪里来的。但是我确实安装了此软件包的2.0.20126.16343版本,只是其中的dll版本为1.0.0.0我想念什么吗?更新:这是另一个ASP.NET应用程序的子应用程序,但是另一个仍然基于WebForms。所以,事情变得混乱了。但是,如果我在web.config的“汇编”部分下进行了清洁,甚至找不到该应用程序本身了。
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

将我的应用部署到appharbor时,我遇到了同样的问题。它尚不支持.NET 4.5的问题。我做了什么。

  1. 将我的项目切换到.NET 4.0配置文件。

  2. 卸载的Web API NuGet软件包。

  3. 再次安装Web API(Beta)NuGet软件包。

  4. 验证.csproj文件包含所有引用的程序集,因此它将始终从Bin文件夹而不是GAC中获取该文件。


查看完整回答
反对 回复 2019-11-29
?
翻阅古今

TA贡献1780条经验 获得超5个赞

在IIS 6.0上部署先前转换(从.NET 4.5到4.0)的Web应用程序时,我遇到了相同的错误。


在web.config 运行时部分中,我找到了


<dependentAssembly>

    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>

    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>

</dependentAssembly>

我已经改为


<dependentAssembly>

    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>

    <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="2.0.0.0"/>

</dependentAssembly>

现在就像魅力一样工作。


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 721 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信