【问题标题】:ASP.NET App Debug: Breakpoint currently not hitASP.NET 应用程序调试:断点当前未命中
【发布时间】:2011-06-14 14:32:44
【问题描述】:

我想使用 Visual Studio 2008 和 IIS7 调试 ASP.NET 应用程序(自定义 IHttpHandler)。

我编译源代码,开始调试 (F5) 并加载 IE。但是我的断点(在 ProcessRequest() 方法中)被禁用。我得到了错误:

当前不会命中断点。 没有为此文档加载任何符号。

我对 ASP.NET 编程一无所知。我必须在 IIS 中设置什么吗?

PDB 文件在那里。我想检查我的 DLL 的符号加载状态,但找不到。

当我打开“Debug->Windows->Modules”时,我在列表中看不到我的 DLL。
仅来自 GAC 等的 Windows DLL 和程序集。

我错过了什么吗?

【问题讨论】:

  • 您是否以管理员身份运行?您需要管理员权限才能附加到 IIS 进程。
  • @Rup: 是的,我在管理员模式下运行 VS2008。
  • 知道了。我必须在调试时打开一个以特定文件结尾的页面。一旦我打开正确的页面,我的 ddl 就会加载并激活断点。好吧,我真的对 ASP 编程一无所知...无论如何感谢您的快速回答。

标签: asp.net visual-studio iis


【解决方案1】:

Visual Studio -> 调试 -> 附加到进程

w3wp.exe

更多信息在这里:http://www.codeproject.com/KB/aspnet/ProcessAttache.aspx

【讨论】:

  • 没有 w3wp.exe。我不想调试托管在 iis 上的应用程序。 Visual Studio 项目配置为启动 VS Dev Server 来托管应用程序。
  • 等等,你说的是Visual Studio 2008和IIS7,如果有站点托管在IIS中,就会有w3wp.exe。对不起,如果我误解了你
【解决方案2】:

对于存档:只有在进程空间中加载了相应的程序集后,才会激活断点。因此,为了启用在 DLL 内的代码行上设置的断点,您必须将应用程序运行到加载 DLL 的位置。断点将被调试器识别并在 VS 中不显示。

【讨论】:

    【解决方案3】:

    对我来说问题原来是在调试配置中打开了属性->构建->优化代码复选框。将其关闭,重新构建,调试正常。

    【讨论】:

      【解决方案4】:

      您是否在<system.web> 部分而不是<system.webServer> 中注册了HttpHandler?

      web.config:

      <system.web>
          ...
          <httpHandlers>
              <add verb="GET" path="MyHandler.ashx" type="MyHandler, MyAssembly" />
          ...
          </httpHandlers>
      </system.web>
      

      另见

      【讨论】:

        【解决方案5】:

        解决了。

        我不得不在调试时打开一个以特定文件结尾的页面。一旦我打开正确的页面,我的 DDL 就会加载并激活断点。

        【讨论】:

          猜你喜欢
          • 2010-10-18
          • 1970-01-01
          • 2015-12-28
          • 1970-01-01
          • 1970-01-01
          • 2017-03-30
          • 1970-01-01
          • 1970-01-01
          • 2019-07-02
          相关资源
          最近更新 更多