启用“仅我的代码”时,Visual Studio 2015 JavaScript 调试不会捕获未处理的异常

Posted

技术标签:

【中文标题】启用“仅我的代码”时,Visual Studio 2015 JavaScript 调试不会捕获未处理的异常【英文标题】:Visual Studio 2015 JavaScript debugging doesn't catch unhandled exceptions when 'Just my code' is enabled 【发布时间】:2015-11-30 08:08:16 【问题描述】:

由于整个团队已升级到 Visual Studio 2015,调试器不再因 javascript 中未处理的异常而中断。然而 4 台机器中的 1 台运行良好,我们猜测这是因为它在 IE10 上,而我们其他人在 IE11 上。

不管怎样,为了掩盖显而易见的东西:

所有机器之间的所有设置都相同,包括 mycode.default.wwa.json 在 JavaScript > JustMyCode 文件夹中 Visual Studio 2015 安装目录

新异常设置窗口上的默认设置与 2012 年旧模式窗口中的异常设置

所以要重现问题,我们只需在外部 JS 文件中编写任何旧的不可靠代码(注意页面本身的脚本块被正确捕获):

ViewModel.js:

function something() 
   foo();

something();

启用 JustMyCode 后,调试器不会将 foo() 捕获为未处理的异常。只要 JustMyCode 被禁用,异常就会被很好地捕获。所以是的,我们可以解决这个问题,但是一旦禁用它,我们就会失去实际的 .Net 调试。

有没有人遇到过这个问题和/或找到了解决方案?我已经尝试将 *.js 添加到 mycode.default.wwa.json 文件中的 MyCode 部分,并且我也添加了 logged a bug on Connect,但我不希望 Microsoft 对此问题做出快速答复。

编辑:所以这似乎只发生在 JS 文件末尾有查询字符串时,例如网站.js?V=1234。如果您删除查询字符串,则调试器会像在 Visual Studio 2012 中一样捕获异常。向 Microsoft 提交一个新的重现和演示项目。

【问题讨论】:

您找到合适的解决方案了吗?另外,您的解决方案中包含什么类型的 VS 项目? 唯一的解决办法是在开发过程中去掉?V=。这是一个 WebForms 应用程序。 您的 MS Connect 问题似乎仍然存在。 是的,它又出现了。我将保持悬赏开放。 @Thomas 同意这似乎是问题 【参考方案1】:

我遇到了这个问题,就我而言,它与我的项目设置中的域名有关。修复方法是确保 IE 中 URL 的域与 Project Settings/Web/Startup URL 中的域相同。

例如:

在 IE 中的 URL:http://www.yourproject.local

项目设置中的启动 URL:http://www.yourproject.local

如果这两个域不同,那么 Visual Studio 对 JavaScript 异常的处理就会中断。

编辑:我刚刚看到您对查询字符串的编辑。所以这可能与你的问题有关。你能确保域名没有错配吗?

【讨论】:

以上是关于启用“仅我的代码”时,Visual Studio 2015 JavaScript 调试不会捕获未处理的异常的主要内容,如果未能解决你的问题,请参考以下文章

VS2017仅我的代码警告

在 C++ 中添加多行注释时如何在 Visual Studio 2010 中启用自动星号?

在 Visual Studio 中调试时启用内存使用情况中的实时图表

如何在 Visual Studio 2015 中启用 WiX 项目

在 Visual Studio 2013 中启用 WiX 项目

如何使用 Visual Studio Code 启用 lintr