关闭选项卡时如何防止调试器停止

Posted

技术标签:

【中文标题】关闭选项卡时如何防止调试器停止【英文标题】:How to prevent debugger to be stopped when Tab is closed 【发布时间】:2016-05-25 12:02:05 【问题描述】:

我有一个 ASP.NET MVC - 调试时使用“IisExpress”的应用程序。当我调试 (F5) 项目时,浏览器中会打开一个新选项卡。

当我现在关闭该浏览器(不是运行我尝试调试的网站的那个)中的 any 选项卡时,调试会立即结束。我正在使用 Chrome,但我不希望这是特定于浏览器的。

如何改变?

Update1:值得一提的是,该解决方案有多个启动项目,其中一个是 SharePoint 插件

Update2:关闭选项卡时和调试停止之前,以下内容已写入输出日志。:

The program '[4208] chrome.exe' has exited with code 0 (0x0).
The program '[15492] iisexpress.exe: Program Trace' has exited with code 0 (0x0).
The program '[10364] chrome.exe' has exited with code 259 (0x103).
The program '[12380] chrome.exe' has exited with code 259 (0x103).
The program '[10076] chrome.exe' has exited with code 259 (0x103).
The program '[8060] chrome.exe' has exited with code 259 (0x103).
The program '[8076] chrome.exe' has exited with code 259 (0x103).
The program '[7488] chrome.exe' has exited with code 259 (0x103).
The program '[7636] chrome.exe' has exited with code 259 (0x103).
The program '[12972] chrome.exe' has exited with code 259 (0x103).
The program '[15492] iisexpress.exe' has exited with code -1 (0xffffffff).
The program '[7384] chrome.exe' has exited with code 259 (0x103).
The program '[7468] chrome.exe' has exited with code 259 (0x103).
The program '[7476] chrome.exe' has exited with code 259 (0x103).
The program '[7884] chrome.exe' has exited with code 259 (0x103).
The program '[13360] chrome.exe' has exited with code 259 (0x103).
The program '[9768] chrome.exe' has exited with code 259 (0x103).
The program '[13804] chrome.exe' has exited with code 259 (0x103).
The program '[11008] chrome.exe' has exited with code 259 (0x103).
The program '[6920] chrome.exe' has exited with code 259 (0x103).
The program '[7364] chrome.exe' has exited with code 259 (0x103).
The program '[7372] chrome.exe' has exited with code 259 (0x103).
The program '[7392] chrome.exe' has exited with code 259 (0x103).
The program '[7400] chrome.exe' has exited with code 259 (0x103).
The program '[7420] chrome.exe' has exited with code 259 (0x103).
The program '[7936] chrome.exe' has exited with code 259 (0x103).
The program '[1900] chrome.exe' has exited with code 259 (0x103).
The program '[8496] chrome.exe' has exited with code 259 (0x103).
The program '[6288] chrome.exe' has exited with code 259 (0x103).
The program '[6616] chrome.exe' has exited with code 259 (0x103).

(但 chrome 并没有真正退出)但仍在运行

当我在没有调试的情况下启动项目时 (Ctrl+F5),关闭选项卡似乎对 IISExpress 没有影响(应用程序继续运行)

更新3: 令人惊讶的是,这只发生在我关闭 在开始调试之前存在的选项卡时。创建新选项卡并关闭它们不会导致调试器停止。

【问题讨论】:

这看起来根本不是默认行为。至少我从来没有遇到过这样的问题,也从来没有听说过,所以似乎有什么东西正在为你做这个“功能”。 我的同事也有同样的问题,我们在 VS 中没有特定的插件 哪个 Visual Studio 版本? @CodeCaster 更新了标签 Exit code 259 (0x103) means the thread is still running。除此之外,据我所知,Chrome 进程仅在将启动参数(URL,...)传递给已经运行的实例时才运行很短,这反过来又会打开一个新选项卡。也许某些 Chrome 更新改变了这一点,而 Visual Studio 仍然依赖于旧行为。 【参考方案1】:

这似乎是 IE 的默认功能,如果运行应用程序的所有选项卡都关闭,则调试器将停止。对于解决方法,我们执行了一次以下操作:

在 IIS 中托管应用程序,因此无论我们是否调试,应用程序实际上都在运行。 当应用程序运行时,将调试器附加到 IIS 工作进程 (w3wp.exe)。 这可以防止对浏览器关闭的依赖,只要 IIS 工作进程正在运行,调试器就会保持连接状态。

希望对你有帮助...

【讨论】:

我的问题出在 chrome 上,但在这里使用 IIS 也可能有所帮助 是的,在这方面使用 IIS 也应该对您有所帮助......但我提到了 IE,因为我们只在那里面对它...... @OleAlbers 运气好吗? 还没有。目前还有其他(更紧急的)错误需要修复。将报告

以上是关于关闭选项卡时如何防止调试器停止的主要内容,如果未能解决你的问题,请参考以下文章

关闭选项卡以关注上一个选项卡而不是第一个选项卡时如何更改 dojo 内容选项卡焦点?

当我从一个选项卡单击到另一个选项卡时,如何使TabLayout中的选项卡不可滚动

关闭浏览器或选项卡时如何获取 Web 通知

动态创建的选项卡 - 关闭选项卡时销毁对象

更改选项卡时避免/防止片段刷新

使用tabview更改选项卡时如何使SwiftUI中的计时器保持触发