如何将Delphi调试器附加到64位IIS 7.5?

时间:2011-05-05 14:51:38

标签: delphi 64-bit iis-7.5 delphi-xe isapi

我正在Windows 7 Pro 64和IIS 7.5上运行Delphi XE,开发ISAPI应用程序。 IIS配置正确(包括允许32位代码在ISAPI进程中运行)。 ISAPI流程正常运行。

在Delphi中,我试图连接到在localHost上运行的ISAPI进程,以逐步执行我的ISAPI.dll代码:运行 - >附加到Process-> InetInfo.exe。

我已经使用Windows XP和IIS 5完成了这一千次,但在这个新环境中我无法附加到ISAPI进程。尝试附加时,我在IDE中收到错误消息:

  

无法创建流程 - 不支持请求

这花费了我很多时间 - 我必须为每行代码抽出调试字符串,运行应用程序,然后查看我的调试字符串等。

为什么我不能加入ISAPI流程?这是IIS 7.5配置问题吗?可能与32/64位问题有关,因为IIS是本机64位而Delphi调试器是32位?

5 个答案:

答案 0 :(得分:3)

在此处了解,http://blogs.msdn.com/b/david.wang/archive/2006/06/21/isapi-filter-and-the-iis6-process-model.aspx

为了说清楚,在iis worker进程隔离模式下,w3wp.exe是加载isapi过滤器的进程,因此你应该附加到它而不是inetinfo.exe。

答案 1 :(得分:2)

答案 2 :(得分:2)

如果IIS 64位使用的是32位模块的ISAPI.DLL,则必须使用32位加载程序进程。 您可以使用ProcessExplorer查找正在加载ISAPI.DLL的进程并将Delphi附加到该进程。

答案 3 :(得分:2)

通过在IIS 7.5的高级应用程序池设置中将“启用32位应用程序”设置为true,可以在x64位计算机上调试32位ISAPI dll。

在Delphi中,您将“C:\ Windows \ System32 \ inetsrv \ w3wp.exe”指定为具有参数“-debug”的主机应用程序。以管理员身份启动Delphi IDE,然后离开。如果你需要更多地控制w3wp的启动方式,你可以使用命令C:\ Windows \ System32 \ inetsrv \ w3wp.exe找出可用的选项 - ?

希望这有帮助!

答案 4 :(得分:1)

您可以使用以下工具在IIS 7.5下调试Delphi ISAPI Web应用程序 http://www.eggcentric.com/ISAPIDebug.htm。 (您需要设置ISAPIFwd.ini文件)