ASP.NET 应用程序调试:断点当前未命中

Posted

技术标签:

【中文标题】ASP.NET 应用程序调试:断点当前未命中【英文标题】:ASP.NET App Debug: Breakpoint currently not hit 【发布时间】: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 编程一无所知...无论如何感谢您的快速回答。 【参考方案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>

另见

UltiDev Cassini and web.config settings HttpHandler in IIS7 and Visual Studio 2010

【讨论】:

【参考方案5】:

解决了。

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

【讨论】:

以上是关于ASP.NET 应用程序调试:断点当前未命中的主要内容,如果未能解决你的问题,请参考以下文章

调试器未在 .NET 代码中命中断点

解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。

VS2017调试代码显示“当前无法命中断点,还没有为该文档加载任何符号”

在 asp .net MVC4 应用程序中,调试在 javaScript 代码中不起作用

Visual Studio 远程调试中未命中断点

Eclipse Debug 作为远程 Java 应用程序断点未命中