笔记-多Web项目,未能加载文件错误
2017-07-12 11:16
267 查看
(把Onenote中的笔记搬上来)
在解决方案中建立了两个Web项目(未相互依赖)
Lc.Web(设为启动项目)
Lc.Frontend
其中Lc.Web设为启动项目。
在F5启动执行的状态下两个项目均会启动,访问未设为启动项目Lc.Frontend的项目时会报以下错误:
1、未能加载文件或程序集“System.Net.Http.Formatting”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自
HRESULT:0x80131040)
反过来,设Lc.Frontend为启动项目时,访问Lc.Web,会报以下错误:
2、未能加载文件或程序集“System.Web.Http”或它的某一个依赖项
原因:
根据之前
RabbitMQ.Client 的
未能加载文件或程序集
的问题处理方案分析,原因应该是两个项目依赖或兼容的程序集版本不一造成的。
结果:
问题1
原因是
在Lc.Frontend项目中依赖程序集
Newtonsoft.Json
绑定的最新版本为6.0.0.0
web.config中
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 这里问题,当同还有引用程序集文问题
</dependentAssembly>
而在Lc.Web
中
最新版本为 8.0.0.0,
因此当以 Lc.Web为启动项目时,Asp.net
临时生成文件以Lc.Web
为主,
而所有启动项目会从临时生成文件夹(..\Temporary
ASP.NET Files)中获取程序集,
因此版本低的Lc.Frontend会报错。
问题2
原因是 Lc.Web项目中包含了Asp.net
Web Api 的程序集,因此会包含 System.Web.Http,
但是Lc.Frontend
项目未包含Asp.net Web Api
的程序集,因此不包含 System.Web.http,
当以 Lc.Frontend
项目为启动项时,临时生成文件以该项目程序集生成,缺少了 System.Web.http。
因此访问 Lc.Web
时会报
未加截System.Web.Http错误。
解决方案:
A:
更改Lc.Frontend
项目
依赖Newtonsoft.Json
绑定的最新版本(通过程序包管理更新 Newtonsoft.Json程序集为8.0.0.0)与 Lc.Web
相同
仅以 Lc.Web
为启动项目,启动时两个项目均可访问。
问题解决完成。
B:
更改Lc.Frontend
项目
依赖Newtonsoft.Json
绑定的最新版本与 Lc.Web
相同
相互设置项目生成依赖(设置Lc.Frontend的项目生成顺序中勾上Lc.Web),则任何一个项目设为启动时,两个项目均可访问。
问题解决完成。
附:Temporary ASP.NETFiles 文件夹中保存的是什么内容 http://blog.csdn.net/kirawoo/article/details/41038403
在解决方案中建立了两个Web项目(未相互依赖)
Lc.Web(设为启动项目)
Lc.Frontend
其中Lc.Web设为启动项目。
在F5启动执行的状态下两个项目均会启动,访问未设为启动项目Lc.Frontend的项目时会报以下错误:
1、未能加载文件或程序集“System.Net.Http.Formatting”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自
HRESULT:0x80131040)
反过来,设Lc.Frontend为启动项目时,访问Lc.Web,会报以下错误:
2、未能加载文件或程序集“System.Web.Http”或它的某一个依赖项
原因:
根据之前
RabbitMQ.Client 的
未能加载文件或程序集
的问题处理方案分析,原因应该是两个项目依赖或兼容的程序集版本不一造成的。
结果:
问题1
原因是
在Lc.Frontend项目中依赖程序集
Newtonsoft.Json
绑定的最新版本为6.0.0.0
web.config中
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 这里问题,当同还有引用程序集文问题
</dependentAssembly>
而在Lc.Web
中
最新版本为 8.0.0.0,
因此当以 Lc.Web为启动项目时,Asp.net
临时生成文件以Lc.Web
为主,
而所有启动项目会从临时生成文件夹(..\Temporary
ASP.NET Files)中获取程序集,
因此版本低的Lc.Frontend会报错。
问题2
原因是 Lc.Web项目中包含了Asp.net
Web Api 的程序集,因此会包含 System.Web.Http,
但是Lc.Frontend
项目未包含Asp.net Web Api
的程序集,因此不包含 System.Web.http,
当以 Lc.Frontend
项目为启动项时,临时生成文件以该项目程序集生成,缺少了 System.Web.http。
因此访问 Lc.Web
时会报
未加截System.Web.Http错误。
解决方案:
A:
更改Lc.Frontend
项目
依赖Newtonsoft.Json
绑定的最新版本(通过程序包管理更新 Newtonsoft.Json程序集为8.0.0.0)与 Lc.Web
相同
仅以 Lc.Web
为启动项目,启动时两个项目均可访问。
问题解决完成。
B:
更改Lc.Frontend
项目
依赖Newtonsoft.Json
绑定的最新版本与 Lc.Web
相同
相互设置项目生成依赖(设置Lc.Frontend的项目生成顺序中勾上Lc.Web),则任何一个项目设为启动时,两个项目均可访问。
问题解决完成。
附:Temporary ASP.NETFiles 文件夹中保存的是什么内容 http://blog.csdn.net/kirawoo/article/details/41038403
相关文章推荐
- C#在Windows 2000 和2003中运行出现的错误:"试图运行项目进出错:未能加载文件或程序集..."
- mvc 部署到iis 提示错误未能加载文件或程序集System.Web.Http.WebHost
- 使用AJAX时错误:未能加载文件或程序集 system.web.extensions解决方法
- 水日报表报错:分析器错误信息: 未能加载文件或程序集"CrystalDecisions.Web,
- 错误提示:未能加载文件或程序集‘System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′
- 错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
- 错误 103 未能加载文件或程序集“Telerik.Web.UI”或它的某一个依赖项。磁盘空间不足。 (异常来自 HRESULT:0x80070070)
- .net AJAX运行错误 未能加载文件或程序集 "System.Web....”的解决办法
- 错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
- 分析器错误消息: 未能加载文件或程序集“MySql.Web, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或..
- 错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
- 由vs 2005升级到vs 2008后,运行时出现错误:未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, 怎么办?
- 错误:”未能加载文件或程序集“System.Web.Mvc, Version=5.2.3.0” 解决方法
- 分析器错误消息: 未能加载文件或程序集“MySql.Web, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或..
- .net AJAX运行错误【 未能加载文件或程序集 "System.Web....】的解决办法
- SVN更新错误:类加载失败,无法读取项目文件"web.csproj"
- 分析器错误消息: 未能加载文件或程序集“CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fb
- 分析器错误消息: 未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
- 由vs 2005升级到vs 2008后,运行时出现错误:未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, 怎么办?
- mvc 部署到iis 提示错误未能加载文件或程序集System.Web.Http.WebHost