关于vs2015 MvcContrib 多项目 无法找到资源 解决办法
来源:互联网 发布:服务网络占用硬盘 编辑:程序博客网 时间:2024/06/02 04:30
按照MvcContrib方式搭建了主/子项目,访问子项目url出现”无法找到资源”
MvcContrib方式请参考:
http://www.cnblogs.com/dingji/archive/2012/06/10/2544255.html
于是断点在:
public class MyDemoAreaRegistration : PortableAreaRegistration{ public override string AreaName { get { return "MyDemo"; } } public override void RegisterArea(AreaRegistrationContext context, IApplicationBus bus) { //断点处,此处方法是继承PortableAreaRegistration类的 //........... }}
运行发现代码并没有停在继承的方法处,说明继承的东西有问题,
既然是继承的东西有问题,那么我们来找一找被继承的PortableAreaRegistration类所定义的方法为什么没有被触发,
鼠标移上去,可见此类完全限定名为:MvcContrib.PortableAreas.PortableAreaRegistration,
既然子项目引用了MvcContrib.dll,那么是不是主项目引用的MvcContrib.dll不一致呢?
展开主项目发现压根没有引用MvcContrib.dll,那么问题究竟出在哪里呢?
来到PortableAreaRegistration定义处,发现其继承了AreaRegistration类,
鼠标放到AreaRegistration上,可见完全限定名为:System.Web.Mvc.AreaRegistration,
也就是说AreaRegistration类来自System.Web.Mvc.dll,此时恍然大悟,
查看主项目和子项目的System.Web.Mvc.dll,发现版本不一致,因此导致了主/子项目使用的dll不一致,
所以,子项目继承的类也不是同一个类,那么被继承的方法当然也就不会被触发咯
总结调用层次结构:
Global.asax.MvcApplication : System.Web.HttpApplication{ protected void Application_Start() { System.Web.Mvc.AreaRegistration.RegisterAllAreas();//此处System.Web.Mvc.AreaRegistration被public abstract class PortableAreaRegistration继承 WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); }}public abstract class MvcContrib.PortableAreas.PortableAreaRegistration : System.Web.Mvc.AreaRegistration{ public override void RegisterArea(AreaRegistrationContext context);//重写父类的方法}public class MyDemoAreaRegistration : MvcContrib.PortableAreas.PortableAreaRegistration{ public override string AreaName { get { return "MyDemo"; } } public override void RegisterArea(AreaRegistrationContext context, IApplicationBus bus) { //再次重写父类方法 }}
解决办法:更换子项目的System.Web.Mvc.dll使其和主项目System.Web.Mvc.dll的版本一致即可。
- 关于vs2015 MvcContrib 多项目 无法找到资源 解决办法
- 关于visual studio2017,无法找到资源编译器rcdll.dll,解决办法
- 关于“无法找到资源程序集”错误
- "无法找到资源"
- MVC 无法找到资源
- 关于Jar包的生成后 资源文件无法找到
- 光驱无法找到解决办法
- 关于改掉JSP名称,无法找到文件的解决办法
- 无法找到资源编辑器dll
- 事件ID(54)的描述(在资源(HTTP)中)无法找到 解决办法
- jar中资源无法找到报 FileNotFoundException的深度(深入JDK)解析及其终极解决办法
- eclipse中java工程打包成jar无法找到src资源文件路径的解决办法
- VS2015 IIS Express 无法启动 解决办法
- VS2015 IIS Express 无法启动 解决办法
- 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决
- 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决
- 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决
- 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决
- Spring面试60题
- 【Oracle】Clob字段读取,写入,更新
- JDBC总结
- Python3:《机器学习实战》之朴素贝叶斯(1)算法概述
- 图书管理系统(数据结构-C++)
- 关于vs2015 MvcContrib 多项目 无法找到资源 解决办法
- LeetCode 19. Remove Nth Node From End of List 解题
- 快速掌握单例模式
- 学习windows内核一
- 初探 React Router 4.0
- 一些php项目中比较通用的php自建函数的详解
- PostgreSQL 9.5.2 数据库说明
- Python基础学习-MariaDB基础学习
- git命令大全