一、关键词说明:
目标机:被调试程序所运行的机器;
调试机:运行VS2008调试代码的机器;

二、远程调试环境搭建步骤如下:
1. 在目标机上安装VS2008远程调试器;
    在VS2008安装盘中 Remote Debugger 目录下,
    有x64和x86两个版本的rdbgsetup.exe ,选择和目标机相匹配的版本。

 

 

2. 在目标机上新建一个用户,
    注意:此用户名要与 调试机上 运行 VS2008 的用户具有相同的用户名 和密码
    并且将新创建的用户隶属于 Administrators

    注:如果目标机是Windows 2003等服务器,有可以会有密码策略限制,关闭密码策略方法为:
          点 [开始 ]按钮 -> [管理工具 ] -> [域 安全策略(或本地安全策略) ],
          选择 [帐户策略 ] -> [密码策略 ],将 [密 码必须符合复杂性要求 ] 设置为 [已禁用 ],
             退出后打开命令行执行 "gpupdate /force " 确保组策略被刷新。

3. 在目标机上给新创建的用户添加 “作为服务登录 ” 权限。
    点击[开始]按钮 -> [管理工具] ->
           [域安全策略] -> [安全设置] ->[ 本地策略]-> [用户权限分配],
    将创建的用户添加到 “作为服务登录” 项的用户列表中,
    退出后打开命令行执行 “ gpupdate /force ” 确保组策略被刷新。

 
4. 点击[开始] 按钮 -> [管理工具] -> [服务] ,
    找到 “Visual Studio 2008 Remote Debugger” 服务,
    在 “ 登录 ” 选项页中把 “ 登录身份 ” 中 选 “ 此帐户 ” ,
    并点击后面的 “ 浏览 ” 选中新创建的用户,输入 密码后确定,
    在 “常规” 选项页中点击 “启动” 按钮,启动 Visual Studio 2008 Remote Debugger 服务 。

5. 先在目标机上将 Visual Studio Remote Debugging Monitor 与 要调试的程序 运行起来,
   注:Debug 和 Release 版的程序均可远程调试,但最好用 Debug 版,因为 Release 编译时可能用代码优化处理!

    再在调试机上的 VS2008 上点击[Debug ]菜单 ->点击[Attach to Process… ]子菜单项,

   有指定打开的工程时,Attach to Process… 在菜单 Debug 里

    没有打任何工程时,Attach to Process… 在菜单 Tools 里,
    这种打开方式不能关联代码进行调试

   在弹出的 “Attach to Process” 对话框的中
   在[Transport ]下拉框中选择 “Default” ,
   在[Qualifier ]下拉框中输入 [目标机的IP或机器名 ],
   然后点击右下角的 [Refresh]按钮,
   如果在 [Available Processes]列表框中可以看到目标机上的进程列表的话,
   则选中要调试的程序后,点击 [Attach]按钮,之后的调试与本机调试相同。

    如果在连接过程中弹出提示“指定的网络名不再可用”,则是目标机上的"Computer Browser"服务没有启动,启动后即可连接。
    如果出现如下错误提示:

Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor named ‘NSC-WIN2003′.
     Access is denied.
     This seems to be because the ‘Network access: Sharing and security model for local accounts’ security policy does not allow users to authenticate as themselves. 
     Please use the ‘Local Security Settings’ administration tool on the local computer to configure this option.

    [管理工具] ->[本地安全策略]里,
    将[网络访问:本地帐户的共享和安全模式]一项的安全设置
    由 “仅来宾-本地用户以来宾身份验证” 改成 “经典-本地用户以自己的身份验证” 即可解决!

    其他错误点击提示框的帮助即可看到MSDN中的详细解释。

附一:调试IIS7中的 ISAPI Filter 且/或 Extension

先将 ISAPI Filter 且/或 Extersion 配置好,然后运行浏览一个网页,即根据你的程序实际触发流程,让 IIS 将你的 ISAPI Filter 且/或 Extersion 载入,
这时在按上面步骤关联 w3wp.exe

如果看不见 w3wp.exe 可用进程,
请检查 Attach to Process 对话框下面的 Show processes from all users 和 Show processes in sessions 两复选框有没有勾选上,如果还没有,就检查你的 ISAPI Filter 且/或 Extension 是否配置正确,
并重启 IIS 后根据你的程序实际触发流程执行浏览或其它什么操作让 IIS 加载你的 ISAPI Filter 且/或 Extension ,
再点 Attach to Process 对话框右下面的 Refresh 按钮看看。