c# - 应用程序仅在附加调试器时崩溃

标签 c# .net visual-studio-debugging

目前我正在 .NET C# 应用程序中开发全局异常处理。我有一些奇怪的行为:

  • 如果我从 Visual Studio (F5) 调试应用程序,未处理的异常会导致主线程终止。

  • 如果我在没有 Visual Studio 的情况下启动应用程序(单击 .EXE)并获得完全相同的编译输出 (DEBUG-Build),应用程序不会在发生未处理的异常后崩溃。

这是一种奇怪的行为...有人知道这里发生了什么吗?

编辑:

一旦调试器附加到进程,似乎正在运行的代码中发生了一些变化......如果我在没有从 VS 中调试的情况下启动应用程序,应用程序不会崩溃。

最佳答案

我一直在使用 ASP.NET MVC 做一些工作,但是当我尝试运行我的 Web 应用程序进行调试时,Visual Studio 2008 会周期性地挂起(卡住/变得无响应)。该问题仅发生在特定的 Web 项目中。

我尝试删除临时 ASP.NET 文件 (%userprofile%\AppData\Local\Temp\Temporary ASP.NET Files),但这并没有解决问题。

我尝试删除 obj 文件夹。运气不好。

我试着等了一个晚上。我最终睡着了,当我半夜醒来时,我的 Web 应用程序正在愉快地等待输入,Visual Studio 调试完全响应。事实证明那只是暂时的缓解。

showallfiles 几天后问题再次浮出水面,我终于找出了我不合作的调试器的问题。我有一个包含大约 20,000 个图像的文件夹,这些图像未包含在 Visual Studio Web 项目中,但位于网站的目录中。我在解决方案资源管理器中打开了“显示所有文件”以将一些脚本文件添加到项目中。当“显示所有文件”关闭时,F5(开始调试)就像冠军一样。当“显示所有文件”打开时,Visual Studio 变得无响应。实际上,它并没有“卡住”,只是花费了很长时间来处理那 20,000 个图像文件。

谜团解开了。

关于c# - 应用程序仅在附加调试器时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199558/

相关文章:

.net - "Create Unit Tests"选择在哪里?

node.js - 使用 NTVS(Visual Studio 的 Node 工具)调试 Meteor 应用程序

asp.net-mvc - ASP.NET MVC5/IIS Express 无法调试 - 代码未运行

c# - 多重赋值(字段=属性=值)

c# - 从 wcf 到 asmx 的错误传播

.net - ASP.NET 按钮和覆盖渲染事件

visual-studio-2008 - 为什么我的模拟器部署失败并显示 "The process cannot access the file because it is being used by another process"?

c# - 为什么这个 C# ThreadPool 有时会丢弃工作项?

c# - 将字符串计算为 C# 中的属性

c# - 将字典值列表连接到 IEnumerable