调试器不会在程序集上命中断点
Posted
技术标签:
【中文标题】调试器不会在程序集上命中断点【英文标题】:Debugger does not hit breakpoints on assemblies 【发布时间】:2015-12-13 12:11:57 【问题描述】:在 Web 应用程序中,我无法调试程序集,但可以调试其他程序集。
我有一个工具,它使用 CSC(使用 /debug 参数)在网络路径上构建一些程序集,并且在编译程序集和 pdb 结束时复制到本地站点 bin 文件夹中;例如构建两个程序集:
-
webui.dll
webbiz.dll
我有一个来自 webui 和 webbiz 的中间程序集 webframework.dll,它显示了它们使用的一些方法。
我遇到问题时的情况如下:
我从httphandler调用了webui.dll的一个方法,使用Assembly.Load
,在这里我可以调试webui的方法
按照我调用webframework的方法的代码,这里我也可以调试它的方法
按照我调用网络框架方法的代码,该方法处理其他程序集调用;这里的委托被称为使用 Assembly.LoadFile
的 webbiz 方法...这里我可以调试 webframework 方法,但是 不是 webbiz
这里我完全糊涂了,我找不到解决办法。
一些信息:
-
webapp 在 IIS 而非 IIS express 下运行
所有程序集都为调试而编译,并且 pdb 是新的且未损坏
如果我尝试
Step Into
webbiz 方法,我看到The application in in break mode
,我必须点击Continue execution
我使用的是 VS2015,VS2013 运行良好 (!)
这是一个与 ASP .NET 相关的问题,因为如果我尝试在控制台应用程序上重现该问题,我可以进行调试
如果我将 webbiz 程序集放在不同于 bin
的路径中,我可以调试!
【问题讨论】:
【参考方案1】:我发现解决问题的唯一方法是使用Assembly.UnsafeLoadFrom
而不是Assembly.LoadFile
【讨论】:
以上是关于调试器不会在程序集上命中断点的主要内容,如果未能解决你的问题,请参考以下文章