我有点奇怪的问题。
我用MVC4和新的Web API开发了一个应用程序,它在本地运行得很好。我在服务器上安装了MVC4并部署了应用程序。现在我得到以下错误:
无法加载文件或程序集“System.Net.Http,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常: 0x80131040)
说明:当前web请求执行过程中发生未处理异常。有关错误及其来源的详细信息,请查看堆栈跟踪
有趣的是,我在本地的软件包文件夹或ASP.NET MVC4\Assemblies文件夹中拥有的System.Net.Http版本是1.0.0.0。我实际上从我的项目中删除了对System.Net.Http的引用,但我仍然得到相同的消息。我有点搞不懂它是从哪里得到2.0.0.0引用的,以及为什么它可以在本地工作,而不是在服务器上工作。
查看nuget依赖关系:
ASP.NET WEb应用编程接口核心库(测试版)依赖于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中的组装部分下进行清理,则甚至找不到应用程序本身。
发布于 2012-03-28 15:25:56
我在将我的应用程序部署到appharbor时也遇到了同样的问题。问题是它还不支持.NET 4.5。我做了什么。
对于所有引用的程序集,
发布于 2012-04-21 00:17:07
在IIS6.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>
现在看起来很有魅力。
发布于 2012-08-06 04:58:42
我的工作方式是:
请注意1-4到2.0的重定向
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
https://stackoverflow.com/questions/9431975
复制相似问题