Vec*_*tor 4 delphi debugging isapi iis-7.5 delphi-xe
场景:
使用Delphi XE编写的Delphi ISAPI dll,32位.
ISAPI DLL在Win 7 64企业桌面计算机上运行IIS 7.5.
DLL运行正常.
使用Run-> Attach to Process调试Delphi XE IDE中的ISAPI DLL:
启动ISAPI DLL并附加到调试器中的wpw3.exe*32进程 - 可以在ISAPI上下文中运行时跟踪和调试代码.
问题:
我的硬盘上周死了,我得到了一个新的Win 7安装 - 标准的企业级Win 7 64企业级映像(与我以前的Win 7 64安装不同).
现在,当我进入Run-> Attach to Process时,我不再按名称看到wpw3.exe*32进程,尽管它在任务管理器中按名称可见.在"附加到进程"对话框中调用"show system processes"选项没有帮助.
我现在看到的(我在旧部署中从未见过)是一个很长的"通用"系统进程列表,其中包含PID,但没有"系统"以外的描述.
其中一个进程是我的wpw3.exe*32进程,我已经使用MS的Process Explorer识别了它的PID.但是,如果我尝试附加到该进程,我会收到一条错误消息 - "无法创建进程 - 访问被拒绝" - 所以我无法调试.(相同的错误消息'错误打开过程,拒绝访问'也在Process Explorer中显示某些属性,尽管过程'wpw3.exe*32'的描述性名称在那里可见,与PID相关联.)
如何获取Run-> Attach to process对话框以显示正确的wpw3.exe*32进程名称并附加到它,以便我可以调试?
这是德尔福问题吗?一个IIS问题?ISAPI问题?这是一个问题 - 即缺乏描述性的过程名称和无法附加到过程是由同样的问题引起的; 或者是这两个问题:一个问题是缺乏描述性名称,另一个问题是无法附加到流程?
(不想使用 - 无法真正使用 - webApp调试器 - 这些是部署到生产的ISAPI dll,就像它们在IIS中编写和调试一样 - 我需要看到它们在IIS上下文中运行.)
多年来一直在调试ISAPI dll,使用不同版本的Delphi,在各种操作系统和服务器环境中没有任何问题 - 以前从未遇到过这个问题.我很难过.
我的帐户有管理员权限,但是我觉得我应该尝试运行DelphiXE作为管理员 - 使用"以管理员身份运行"选项启动它.
我得到提示'你想允许......' - 点击是,Delphi跑了.设置我的进程并连接并跟踪我的代码 - 进程名称现在可见,我可以附加到我的IIS进程并在Delphi调试器中进行调试.
无论出于何种原因,我无需在我之前的部署中执行此步骤 - 但问题已解决.