Delphi ISAPI中的CodeSite日志记录

4
我有Delphi XE Enterprise捆绑的CodeSite Express。现在我正在XE中开发一个ISAPI应用程序(我使用XE中的进程附加进行跟踪和调试-效果很好),我想从我的ISAPI应用程序中获取一些CodeSite消息。
在包含的CodeSite帮助文件中的高级技术部分,我找到了这个:
“从服务记录日志
服务应用程序在与桌面不同的窗口站点中运行。但是,默认情况下,CodeSite Dispatcher在桌面窗口站点中运行。因此,用于将CodeSite消息传输到Dispatcher的默认消息传输机制-wm_CopyData窗口消息被Windows阻止。Microsoft Windows不允许窗口消息跨越窗口站点边界...因此,如果我们希望从服务应用程序发送CodeSite消息到Dispatcher,则需要使用TCP协议连接Dispatcher,而不是CopyData。”
问题:
我是否正确地假设相同的规则适用于ISAPI应用程序?我必须使用TCP才能从ISAPI应用程序中获取CodeSite消息吗?
2个回答

6
考虑到ISAPI是从IIS加载的,而IIS又作为一项服务运行,那么是的。

3
在默认配置下是这样的,但还有更多内容。我不确定较新版本是否仍然如此,但在IIS 6中,当您选择高隔离级别时,您的ISAPI dll将在一个dllhost.exe进程上通过COM+运行。使用组件服务管理工具(以前称为DCOM config),您可以更改“激活”配置以使用当前登录用户,并且dllhost.exe实例将在活动窗口站点上运行。(甚至可以使用/ProcessID:{}参数和COM+条目的GUID将dllhost.exe启动为Delphi调试器的主机应用程序)。
到目前为止,在IIS 7中所看到的是w3wp.exe现在加载和运行ISAPI dll,但我不确定是否适用类似上述内容的东西。您可以检查应用程序池设置是否具有类似的激活设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接