【问题标题】:Application only crashes when debugger is attached仅在附加调试器时应用程序崩溃
【发布时间】:2015-12-10 10:33:35
【问题描述】:

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

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

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

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

编辑:

似乎一旦调试器附加到进程,运行代码中的某些内容就会发生变化...如果我在 VS 中不进行调试就启动应用程序,应用程序不会崩溃。

【问题讨论】:

  • 您有关于未处理异常的任何信息吗?
  • 它是一个假异常 System.Exception 我抛出来测试 type 的全局异常处理。只要我在 .NET Windows Forms / WPF 应用程序中打开一个新视图,它就会被抛出。

标签: c# .net visual-studio-debugging


【解决方案1】:

我一直在使用 ASP.NET MVC 进行一些工作,但是当我尝试通过调试运行我的 Web 应用程序时,我遇到了 Visual Studio 2008 挂起(冻结/变得无响应)的周期性问题。该问题仅出现在特定的 Web 项目中。

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

我尝试删除 obj 文件夹。没有运气。

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

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

谜团解开了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多