表现:

IDE是vs2017。是在 A 控制器方法断点后,却怎么也运行不到那个位置,但是又正常返回页面。该方法位于web项目引用的控制器类库上的一个控制器,试过它隔壁的控制器,一切正常。

但每次访问该方法,codelens都会有一次记录,如下:

尝试解决:

首先找了web项目,看看有没有那个名叫 A 的控制器,控制器数量不多,看了一眼,结果是没有,也没一个个点开看里面内容。接着觉得是bin文件里面会不会混入其它类库包含有名叫 A 的控制器,于是清理了一遍解决方案重新生成,结果还是不行。

然后想到把方法名改成Index1试试:

还是不行。最后,拍了下脑袋想起来可以用反汇编工具看看控制器类库 Index 有没有改成 Index1 ,结果是改了;再抱着试试的心态看了下web项目控制器,bingo!A控制器就在里面,瞬间明白是怎么回事。A 控制器出现在web项目名叫 AllController 的控制器里面,这是之前加的忘了删除,导致引用的进来的 A 控制器被覆盖了。删掉即可。

总结:

出现这种问题,却没有做好分析立马解决,是自己缺乏经验。这个坑所表现出来的各个知识点都懂,就是缺少一个解决问题的分析思路。首先本地调试不会像远程调试一样出现无法加载符号或者符号版本不一致的情况,也就是无法断点的情况;其次该方法是可以正常访问的,也就是没有出错,没有被拦截;然后奇怪的一点是codelens记录有访问次数,但状态却是红叉,这个迷惑性比较大,让人更加肯定断点没有错,因为每次访问这个记录数都会加一。如果抛开这点不看,调试状态中 一个方法访问正常,但是没有在断点位置停止,那就说明断点的这个位置不是代码经过的位置,这时候只需要继续找其他位置断点,直到断点成功。在这里的情况是web项目里面有同名的控制器覆盖了引用的类库的控制器,所以测试 A 控制器隔壁的控制器是正常的,也正因为覆盖了 A 控制器,codelens 的记录是红叉。通过在路由设置命名空间即可实现一个web项目共存两个同名控制器,按照注册顺序查找返回路由。

记那些年在asp.net mvc上挖过的坑的更多相关文章

  1. asp.net mvc上传头像加剪裁功能

    原文:asp.net mvc上传头像加剪裁功能 正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jqu ...

  2. asp.net mvc上传头像加剪裁功能介绍

    正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc ...

  3. ASP.NET MVC上传文件----uploadify的使用

    课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...

  4. ASP.NET MVC上传文件

    最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel    {        [Displ ...

  5. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度

    APS.NET MVC 上传文件出现  System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...

  6. 记一次ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  7. 【转】记一次ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  8. asp.net mvc 上传文件

    转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...

  9. Asp.net mvc上传多张图片后台存储

    前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...

随机推荐

  1. linux命令killall 、kill 、pkill 命令详解

    转自:http://www.cnblogs.com/rsky/p/4886043.html killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processe ...

  2. 01:zabbix监控redis

    一.zabbix 自动发现并监控redis多实例 1.1 编写脚本 1.1.1 redis_low_discovery.sh 用于发现redis多实例 [root@redis02 homed]# ca ...

  3. android.support.v7.internal.widget.ActionBarOverlayLayout Couldn't Be Initialized

    问题症状: Android Studio 1.2 (Build 141.1890965) 新建工程,自动build完成后,Layout Editor无法预览Layout文件,报错内容: Renderi ...

  4. RESTful API终极版序列化封装

    urls: from django.conf.urls import url from app01 import views urlpatterns = [ # url(r"comment/ ...

  5. vue语法精简(方便开发查阅)

    vue语法精简(方便开发查阅) 指令 特殊的标签和属性 变异方法 事件修饰符 按键修饰符 表单修饰符 生命周期函数 计算属性 监听属性 子组件通过事件向父组件传递信息 在组件上使用v-model 动画 ...

  6. Matlab信号处理工具箱函数

    波形产生和绘图chirp 产生扫描频率余弦diric 产生Dirichlet函数或周期Sinc函数gauspuls 产生高斯调制正弦脉冲pulstran 产生脉冲串rectpuls 产生非周期矩形信号 ...

  7. TMS Grid

    TMS Grid http://edn.embarcadero.com/article/42553

  8. CentOS 多版本python安装pip

    首先配置环境 安装 zlib,zlib-devel,openssl,openssl-devel yum install zlib yum install zlib-devel yum install ...

  9. __stdcall详解

    对_stdcall 的理解(上) 在C语言中,假设我们有这样的一个函数:int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用 ...

  10. Flume学习总结

    Flume学习总结 flume是一个用来采集数据的软件,它可以从数据源采集数据到一个集中存放的地方. 最常用flume的数据采集场景是对日志的采集,不过,lume也可以用来采集其他的各种各样的数据,因 ...