记那些年在asp.net mvc上挖过的坑
表现:
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上挖过的坑的更多相关文章
- asp.net mvc上传头像加剪裁功能
原文:asp.net mvc上传头像加剪裁功能 正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jqu ...
- asp.net mvc上传头像加剪裁功能介绍
正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- ASP.NET MVC上传文件
最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel { [Displ ...
- asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度
APS.NET MVC 上传文件出现 System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...
- 记一次ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- 【转】记一次ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- asp.net mvc 上传文件
转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...
- Asp.net mvc上传多张图片后台存储
前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...
随机推荐
- MySQL与PostgreSQL相比哪个更好?
网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理.在开始分析前,先来看下这两张图: MySQL MySQL声称自己是最流行的开源数据库.LAMP中的 ...
- 2017 年 PHP 程序员未来路在何方?
PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...
- Mathtype 公式显示方框
公式编辑器mathtype中一些符号显示方框,如何解决呢?出现这个问题的原因是这是因为windows中的mtextra.ttf(显示为MT Extra (TrueType))字体文件不存在或版本太低, ...
- 建设银行网上银行MD5withRSA php版
1. 首先通过java程序将建设银行的公钥串转成pem格式并写入文件 SignTest.java是运行程序, RSASig.java是建设银行签名算法类, bcprov-jdk15-145.jar是P ...
- Spring cloud config-client 爬坑
配置文件 找不到属性 Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'from' in st ...
- ASP.NET中高级程序员 面试题
1. 简要说一下.Net的编译过程. 2.ASP.NET与ASP的区别 3.谈一下ASP.NET页面生命周期 4.ASP.NET程序的运行机制.可以从一个页面的请求到返回的角度谈 5.Javascri ...
- javascript数组操作(创建、元素删除、数组的拷贝)
这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...
- cas增加验证码
参考地址:https://blog.csdn.net/attackmind/article/details/52052502 参考地址:https://blog.csdn.net/jadyer/art ...
- linux进程的几个状态
[linux进程的几个状态] 1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态) 2. Linux进程状态:S (TASK_I ...
- S SQL
样品申请单状态更新为“审核不通过” select STATUS_CD from S_ORDER where row_id='1-5U7IL' update S_ORDER set STATUS_CD= ...