我正在尝试调试用Delphi编写的ISAPI扩展。扩展工作正常,但我似乎无法调试它(即设置一个断点和单步代码)。
这就是我所做的:
但是我的处理程序中永远不会触发断点(见下图):
答案 0 :(得分:13)
您的方法实用性有限,因为您只能在应用程序启动后开始调试。如果你需要从第一个请求调试它,这是没用的。这就是你应该做的:
IIS设置:
1)在IIS上,在“默认网站”下创建一个新的Web应用程序。
2)默认网站下的每个应用程序都应使用相同的应用程序池DefaultAppPool。确保此应用程序池无需调试即可运行ISAPI应用程序。如果您无法使用它运行ISAPI应用程序,那么您也无法对其进行调试。
应用程序设置(Delphi IDE):
在Delphi中设置应用程序(任何XE + IDE都有类似的设置)
1)以管理员身份运行Delphi。并非绝对必要,但可以使许多事情变得更容易,并避免许多问题。
2)在Delphi Ide中,选择Run - >参数。通知主机应用程序和参数,如下图所示:
W3WP.exe是IIS Worker Process可执行文件,我们将以交互方式运行它以调试ISAPI应用程序。请记住,存在2个版本的w3wp.exe:一个32位在C:\ Windows \ SysWow64下,另一个64位在C:\ Windows \ System32下。 您必须使用与您的应用程序匹配的正确版本。
3)停止万维网发布服务。您可以使用" net stop W3SVC"从提升的命令提示符,或使用Windows服务控制台。
W3SVC停止后,只需从Delphi IDE运行应用程序并从浏览器中调用它。应用程序加载时,将激活所有断点。您可以像任何其他Delphi应用程序一样进行调试。