【问题标题】:C#: Can't debug ASHX handlerC#:无法调试 ASHX 处理程序
【发布时间】:2013-03-04 13:40:26
【问题描述】:

我有一个 ASP.net C# 4.0 网站项目。我正在使用 jQuery AJAX 回发调用 ASHX 处理程序。通常我在调试C#时,我使用这个方法Debug > Attach to Process > 选择w3wp.exe 并开始调试。

当我使用我的 ASHX 处理程序执行此操作时,Visual Studio 显示“不会命中断点。没有为此文档加载任何符号。”果然,当我对处理程序运行 AJAX 调用时,没有命中断点。

让我感到困惑的是,我可以调试 C# 文件,即 ASPX 文件的代码隐藏。

【问题讨论】:

  • 如果你有项目,也有源,为什么还要手动绑定调试器?
  • 因为该站点是内容管理解决方案的一部分,这需要我登录。我更喜欢使用我现有的 Web 浏览器会话,否则我必须跳过更多步骤才能获得我要调试的部分。你为此标记我?不错。
  • 对不起,格兰特 - 我冒昧了

标签: c# debugging handler ashx


【解决方案1】:

事实证明,在 Visual Studio 实际尝试运行 ASHX 处理程序之前,它实际上不会加载用于调试的符号。我的问题原来出在其他地方——调用处理程序的 jQuery 代码中的一个错误。

起初我没有看到这个错误,所以假设处理程序被击中。调用处理程序后,VS 将允许您对其进行调试。我没有意识到 ASHX 处理程序的行为方式是这样的,我认为它们会像普通的 C# 文件一样工作。

【讨论】:

  • 他们都是这样工作的。您会注意到更改 aspx 页面中的某些内容并保存和设置断点会导致“错误”断点符号,当您刷新页面时然后您可以看到正在加载的所有符号。
【解决方案2】:

这通常是因为您正在查看的(代码)不是您正在运行的。

尝试输入Debugger.Launch(); 并查看它是否正确附加了调试器。如果是这样,那么您的问题只是您正在查看与调试无关的代码的不同副本/版本

【讨论】:

    【解决方案3】:

    是否只有一个 w3wp.exe 尝试右键单击您的 asp.net 项目,从上下文菜单中选择“调试”和“启动新实例”。

    【讨论】:

    • 是的,只有一个 w3wp.exe 实例
    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多