2010-07-29 121 views
0

我试图调试一个Web应用程序,并且遇到了一些相当奇怪的问题。我做的第一件事是附加到w3wp进程,并在执行的代码中设置断点。事情是,没有任何突破点。考虑到我必须做错了什么,我停止了调试器,当我重新连接时,我的54个进程中只有6个显示,没有一个是w3wp(是的,我都显示来自所有用户的进程并显示所有进程会话检查)。重新启动VS(或电脑)什么都不做。任何人有什么想法如何让VS工作?调试器停止工作,并停止显示活动进程

回答

0

虽然附加到进程,

  1. 点击调试菜单
  2. 视窗 - >模块
  3. 或者 “CTRL-d,M”

这将显示你所有的由您附加的进程加载的dll。如果您需要的dll不在那里,请刷新浏览器中的页面并查看它们是否已添加到列表中。

如果他们不在列表

您连接到了错误的W3wp.exe进程

如果他们列表

  1. 看“路径”栏,确保它是从执行,你期望的那样。
  2. 查看“符号文件”一栏,如果是空的,
    1. 右击DLL和“从载荷符号 - >”选择,然后“符号路径”
    2. 这将允许你来点直接添加到您要加载的本地pdb文件。它应该在“myproject/bin/debug /”目录中。
    3. 这可能会说“pdb与模块不匹配”(我忘记了)。如果是这种情况,这意味着您运行的代码与您在Visual Studio中使用的版本不同。
    4. 这是非常重要的。如果你在gac中部署了一些东西,那么在visual studio中版本生成,它会认为pdbs与gac'd dll不同步!所以,如果你想调试你放在gac中的东西,这意味着pdb上的时间戳和加载的dll上的时间戳必须相同!

希望,这将让这一切工作了。

+0

谢谢,它开始在你的帖子之前自行开发。我打算保存这个信息,虽然VS已经这样做了 – 2010-07-29 21:09:05

+0

@ 0_o很高兴帮助 – DevinB 2010-07-29 21:11:53