zoukankan      html  css  js  c++  java
  • 如何调试最新的asp.net mvc源码

    vs2013调试

    一、源码当前为5.2.0.0,按下面改为5.0.0.1

    二、/web.config 版本为5.0.0.0 改为5.0.0.1

    三、vs2013 x86 本机工具命令提示
      

        sn.exe -Vr *,31BF3856AD364E35
        将上秘钥复制到/web.config对应位置

    四、删除原dll引用,按下图引用五个新的dll

    =======================================================================================

    最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤。

      一:准备工作。本机安装的是vs2012,打了update1的补丁包,如图

    接下来下载asp.net mvc的源码,地址是:http://aspnetwebstack.codeplex.com/ ,下载之后解压出来即可。

    二:有两种方式可以调试源码,分别是:1)直接在源码的解决方案下新建一个asp.net mvc4应用程序 2)新建一个单独的asp.net mvc4解决方案 。两种方案我都尝试了,不过在这里我就演示方法2。

    三:修改System.Web.Mvc的版本号,编译。

    我们打开如下图所示的文件,可以看到其最新的版本是5.0.0.0

    在这里,我们将5.0.0.0 修改成为4.0.0.1 。这个版本号你可以修改为任意值,最关键的是要将你修改的值正确的填写在webconfig文件里面。

    四:修改新建的mvc解决方案里面webconfig中的版本号,重新注册公钥值。

    找到解决方案里面根目录下的webconfig文件,如下图操作。

    接下来就是用vs2012自带的命令行工具注册公钥值了,命令是:sn.exe -Vr *,31BF3856AD364E35

    看到这样的命令就是注册成功了。将这个公钥值按照上面那种图那样修改。

    五:修改View文件夹里面webconfig中的一些版本号

    六:引用源码中相应的dll

    先将新建的解决方案中如下dll移除掉。

    引用新的dll

    七:到这里我们就可以调式代码了

    因为asp.net mvc 也是运用了管道模型,也就是这个MvcHandler类处理请求,并通过httpmodule将结果返回给客户端。我们在Global.asax里面的Application_Start加入断点,在MvcHandler的类中开始的位置加入断点,如下图。

    到这里,我们已经成功的进入了源码调试了。

    八:小插曲,将根目录下的webconfig里面的节点修改如下,不然网页显示有错误。

    按照如上修改,网页就可以正常显示了。

    总结:上面的做法是新建一个解决方案,然后调用dll。那么在源码的解决方案下新建一个项目,具体修改方发如上操作。

  • 相关阅读:
    SpringBoot整合SpringDataJPA,今天没啥事情就看了一下springboot整合springdataJPA,实在是香啊,SQL语句都不用写了
    SpringMVC+Spring+Mybatis整合
    开源的分布式事务框架 springcloud Alibaba Seata 的搭建使用 一次把坑踩完。。。
    spring cloud Alibaba --sentinel组件的使用
    springcloud整合config组件
    springcloud整合geteway网关服务
    springcloud组件之hystrix服务熔断,降级,限流
    干货 springcloud之 poenFeign的使用
    springcloud组件之注册中心eureka学习
    面试题---->线程的入门,读完可以应付一般的面试(管理员不要移除我的随笔啊)
  • 原文地址:https://www.cnblogs.com/dotnetmvc/p/3665023.html
Copyright © 2011-2022 走看看