这是我遇到过的最奇怪的事情所以请听我说。
我在构造函数级别设置断点(并尝试过其他地方),但不确定出现了什么问题。
代码非常正常C#MVC web api。
有谁知道可能导致此行为的原因?
答案 0 :(得分:1)
我喜欢使用的一个技巧是使用Exception
s。首先,您将“糟糕”Controller
中的某些公开方法更改为无条件throw
某些虚拟Exception
。然后从WebAPI的任何使用中调用该方法,并确保实际抛出Exception
。有时某些东西会被缓存,而代码实际上并没有被重新编译或者其他东西。
然后附加调试器,看看它是否捕获Exception
。您可能会附加错误的流程。
接下来将代码修改为throw
和catch
Exception
并将其记录下来。这里的诀窍是VS Debugger有一个选项,即使在捕获的“用户处理的”例外情况下也会停止:请参阅配置here for VS up to 2013和here for VS 2015+。然后你可以看到符号是否与代码匹配。
答案 1 :(得分:0)
我有类似的问题 - 试试这个网站可能有所帮助 breakpoint issue
同时尝试强制断点 System.Diagnostics.Debugger.Break();
答案 2 :(得分:0)
控制器是否正常工作但是没有触及断点,输出缓存是否生成了什么?如果是,则数据将通过任何缓存来返回,并且控制器不会被实例化。
目前尚不清楚您使用的是MVC还是WebAPI控制器,或者您正在返回的内容。但是,如果它是MVC,您可以查找[OutputCache()]
属性。您还可以留意可能会添加的其他缓存相关标头。
根据缓存策略,您可以通过添加随机查询字符串值来绕过它,以便它必须创建新的缓存键。例如:
http://example.com/some/path/1234?cow=moo
答案 3 :(得分:0)
改为尝试
1。转到项目“构建设置”
2.Search Debug
3。在Apple Clang下-代码生成检查“优化级别”
4。将调试设置为无[-OO]
答案 4 :(得分:-1)
刚才写下这个问题之前我遇到了同样的问题...尝试转到webapi的属性并比较网页部分中找到的项目网址是否与网站的webconfig文件中指定的网址相同。至于我的问题,该网站正确地指向webapi,它允许读取webapi中的任何代码更改,但调试器指向错误的位置,因此它无法读取您放置的任何断点。