我有一个使用Visual Studio 2013创建的ASP.NET Web应用程序。我正在尝试在CSHTML文件中调试JavaScript。但是,每当我启动网页时,任何断点都会变成一个红色圆圈箭头并指出“断点当前不会被命中。调试器的目标代码类型的可执行代码与此行没有关联。可能的原因包括:条件编译,当前的调试器代码类型不支持编译器优化或此行的目标体系结构。“
最近,该项目被转换为支持MVC和RAZR,我都不知道,这正是这个问题的开始。但是,搜索那些已经产生的结果无法解决我的问题。
的Web.config:
<compilation debug="true"...>
我知道我可以使用Firebug或其他一些浏览器工具调试JavaScript,但我更愿意坚持使用Visual Studio的调试,因为这是我习惯的。
答案 0 :(得分:45)
所以,显然这是一个“已知问题”,将尽快修复。对“某些”人工作的临时工作是确保任何Javascript都在一个单独的文件中。
这是因为在同一个文件中使用RAZR和Javascript,而Visual Studio 2013无法在该实例中处理调试。
答案 1 :(得分:21)
我不知道您的特定问题是什么,但如果您想强制调试断点始终发生,请将debugger;
添加到您希望它停止的行,它将停止。这与JS所在的位置无关(在.js文件,.html,cshtml等中)
以下是关于它的博文:
http://sumitmaitra.wordpress.com/2013/12/11/quickbytes-visual-studio-2013-and-javascript-debugging/
我也同意JS应该进入.js文件(我在.js文件中添加断点时从未遇到过问题),但是对于快速原型设计,这是一个可以使用的解决方案。
如果仍然无效,您可以随时使用F12工具
答案 2 :(得分:11)
允许从Visual Studio调试javascript文件的唯一浏览器是Internet Explorer。 (这是我在不同浏览器上测试我的应用程序后发现的)
答案 3 :(得分:5)
我将我的javascript放在一个单独的文件中并使用IE调试,否则它将无法正常工作。
由于某种原因,Chrome不允许您进入javascript。
答案 4 :(得分:5)
另外要检查一下。如果您有一个App_Start | BundleConfig.cs(随MVC 4一起提供 - 或者可能是3),请将BundleTable.EnableOptimizations设置为false(或者像我一样,将其包装在#if!DEBUG #endif并采用默认设置) 。
答案 5 :(得分:0)
我尝试过并且未能使用Chrome然后使用IE并最终在Firefox中使用Firebug插件,我能够在我的JS中调试和设置断点而没有任何问题(在Visual Studio 2015上的MVC6应用程序中,这是显然还是个问题?!)...
仅供参考 - 当我尝试使用F12开发人员工具在Chrome中调试我的JS时,它告诉我这不是一个选项,因为调试器已经附加到另一个进程...
答案 6 :(得分:0)
对于2017年来到这里的人,我想与 VS2017 Enterprise RC 和 VS 2015社区我有同样的问题 >使用任何浏览器,但Internet Explorer 。使用IE为我做了诀窍。
此外,在VS2017中,我必须添加 debugger
语句才能让VS开始查看调试点。
最后,我想问至少投票的人的评论。