场景:
使用 Delphi XE 编写的 Delphi ISAPI dll,32 位。
ISAPI dll 通过 IIS 7.5 在 Win 7 64 企业桌面上运行 机器。
DLL 运行良好。
在 Delphi XE IDE 中使用 Run->Attach to 调试 ISAPI DLL 流程:
启动 ISAPI DLL 并附加到 wpw3.exe *32 进程 调试器 - 可以跟踪和调试在 ISAPI 上下文中运行的代码。
问题:
我的硬盘上周坏了,我安装了新的 Win 7 - 标准企业范围的 Win 7 64 企业镜像(与我的不一样) 之前的 Win 7 64 安装)。
现在,当我进入“运行”->“附加到进程”时,我不再看到 wpw3.exe *32 按名称进程,尽管它在任务管理器中可见 按名字。调用“附加到”上的“显示系统进程”选项 进程对话框没有帮助。
我现在看到的(我之前在旧部署中从未看到过)是 一长串带有 PID 的“通用”系统进程,但没有 “系统”以外的描述。
其中一个进程是我的 wpw3.exe *32 进程,我已经识别出 它的 PID 使用 MS 的 Process Explorer。但如果我尝试附加到 该进程我收到一条错误消息 - '无法创建进程 - 访问被拒绝' - 所以我无法调试。 (相同的错误消息“错误 “打开进程,访问被拒绝”也显示在 Process Explorer 中 某些属性,尽管进程的描述性名称' wpw3.exe *32' 在那里可见,与 PID 相关联。)
如何让“运行”->“附加到进程”对话框显示 正确的 wpw3.exe *32 进程名称并附加到它,以便我可以调试?
这是 Delphi 的问题吗? IIS 问题? ISAPI 问题?这是一个问题 - 即缺乏描述性进程名称和无法附加到进程是由同一问题引起的吗?或者这是两个问题:一个问题是缺乏描述性名称,另一个问题是无法附加到流程?
(不想使用 - 无法真正使用 - webApp 调试器 - 这些是 ISAPI dll,它们完全按照原样部署到生产环境中 在 IIS 中编写和调试 - 我需要看到它们在 IIS 中运行 上下文。)
多年来一直以这种方式调试 ISAPI dll,使用不同版本的 Delphi 以及在各种操作系统和服务器环境中,没有出现任何问题 - 以前从未遇到过此问题。我被难住了。
最佳答案
我的帐户具有管理员权限,但我突然想到应该尝试以管理员身份运行 DelphiXE - 使用“以管理员身份运行”选项启动它。
我收到提示“您想允许...” - 单击"is",然后 Delphi 运行。设置我的进程并连接并跟踪我的代码 - 进程名称现在可见,我可以附加到我的 IIS 进程并在 Delphi 调试器中进行调试。
无论出于何种原因,我在之前的部署中都不需要执行此步骤 - 但问题已解决。
关于delphi - 进程名称在 Delphi XE 中不可见附加到进程对话框 - 无法调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12416231/