【问题标题】:VS2008 debugger behaving strangely for web applicationVS2008 调试器在 Web 应用程序中表现异常
【发布时间】:2009-07-31 20:02:31
【问题描述】:

在我的工作计算机上,Visual Studio 2008 (SP1) 中的调试工作似乎与我习惯的有所不同。我有两个可能相关也可能不相关的问题。

第一个问题:

当我在调试模式下运行 Web 应用程序并发生未处理的异常时,我会立即收到黄屏死机。通常我的代码只是在抛出异常的那一行中断,允许我检查程序的状态。

由于某种原因,我可以在我的工作 PC 上执行此操作的唯一方法是在引发异常的行上设置一个断点,然后重复我所做的。这几天一直困扰着我,但我不知道是什么原因造成的。有什么想法吗?

第二个问题

我正在调试的站点中使用的 WCF Web 服务在调试时也表现得有些奇怪。大多数情况下,在服务中设置断点在执行该代码时不会产生任何影响。起初,我认为我必须附加到 wcfhost 进程,但事实并非如此。当我在调用服务的行上放置断点并使用 F11 进入方法调用时,我确实进入了服务的代码,我可以调试我想要的。

为什么会步入工作,而断点却被忽略?有没有办法改变这种行为?

【问题讨论】:

    标签: asp.net visual-studio visual-studio-2008 wcf debugging


    【解决方案1】:

    对于第一个问题:

    • 在 Visual Studio 中转到调试/异常
    • 您应该会在列表中看到三列:“名称”(异常类型)、“抛出的”、“用户处理的”
    • 在“用户处理”列中,您必须激活“公共语言运行时异常”复选框。

    注意,如果您不应该看到“用户处理”列,请转到工具/选项,然后单击树中的“调试”并在列表中激活“仅启用我的代码(仅限托管)”。然后“用户处理”列应该在另一个对话框中可见,您可以激活相应的复选框。

    对于第二个问题: 在我看来,好像我遇到过类似的问题。我猜你必须在那里设置断点,因为 WCF 服务运行在一个单独的“网络服务器”(你的本地 VS 网络服务器)上。因此,它不像同一个应用程序中的普通方法调用,因此您必须在被调用的 WCF 方法上设置断点。我一直都是这样做的,而且对我来说效果很好。

    【讨论】:

    • 据我所知,已检查用户未处理。不幸的是,我现在无法访问机器,所以当我回到办公室时,我会绝对确定。为 WCF 调试感到羞耻:(
    • 正如我所提到的,我不确定 WCF。对于“用户处理”的事情:它发生在我身上,尽管它以前被激活,但它以某种方式被停用。这就是为什么我记得这个设置。
    • Just My Code 确实被禁用了(不记得为什么)。我觉得自己像个白痴,但它至少解决了我的第一个问题 :) 它还再次打破了 WCF 服务中未处理的异常,这在一定程度上降低了第二个问题的烦恼程度。
    • :) 正如我所提到的。同样的事情发生在我身上,我确信我没有禁用“只是我的代码”。它不知何故是自动完成的,我花了几个小时才找到选项。
    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2010-11-05
    • 2019-06-13
    • 2011-01-02
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多