我有CodeSite快递,和捆绑在一起。现在,我正在XE中开发一个ISAPI应用程序(我使用附件来跟踪和调试XE中的进程-非常好),我想从我的ISAPI应用程序中获取一些CodeSite消息。
在包含的CodeSite帮助中的高级技术中,我发现了以下内容:
“从服务部门登录
服务应用程序在与桌面不同的窗口站点中运行。但是,默认情况下,CodeSite调度程序在桌面窗口站中运行。因此,用于将CodeSite消息传输到Dispatcher ( wm_CopyData窗口消息)的默认消息传输机制被wm_CopyData阻止。微软视窗不允许窗口消息跨越窗口站边界……因此,如果我们希望从服务应用程序向调度程序发送CodeSite消息,则需要使用TCP协议而不是CopyData连接到调度程序。
问题:
我是否认为同样的规则适用于ISAPI应用程序?我必须使用TCP从ISAPI应用程序中获取CodeSite消息吗?
发布于 2011-09-07 22:25:50
考虑到ISAPI是从IIS加载的,而且IIS是作为服务运行的,是的。
发布于 2011-09-07 23:00:49
在默认配置中,是的。但还有更多。我不确定新版本,但在IIS 6中,当您选择较高的隔离级别时,您的ISAPI将从dllhost.exe进程通过COM+运行。使用Components Services管理工具(以前称为DCOM配置),您可以将“激活”配置更改为使用当前登录的用户,dllhost.exe实例将在活动窗口站中运行。(您甚至可以使用dllhost.exe参数和COM+条目的guid作为Delphi调试器的主机应用程序启动COM+)。
到目前为止,我在IIS 7中看到的是,w3wp.exe现在加载并运行ISAPI,但我不确定上面的内容是否适用。您可以检查应用程序池设置是否具有类似的激活设置。
https://stackoverflow.com/questions/7340972
复制相似问题