2011-09-07 7 views
3

私はCodeSite ExpressをDelphi XE Enterpriseにバンドルしています。今、私はXEでISAPIアプリケーションを開発しています(XEで処理するattachを使ってトレースしてデバッグします)。ISAPIアプリケーションからCodeSiteメッセージを取得したいと思います。 。CodeSite Logging from Delphi ISAPI

サービスアプリケーションはデスクトップとは別のウィンドウステーションで実行されるサービスからログインただし、デフォルトでは、コードサイト:付属コードサイトのヘルプの高度なテクニックで

は、私はこれを見つけましたDispatcherはデスクトップウィンドウステーションで実行されます。その結果、CodeSiteメッセージをDispatcherに転送するためのデフォルトのメッセージ転送メカニズム、wm_CopyDataウィンドウメッセージはWindowsによってブロックされます。Microsoft Windowsではウィンドウメッセージがウィンドウステーションの境界を越えることができません。 ....したがって、サービスアプリケーションからCodeSiteメッセージをDispatcherに送信する場合は、 CopyDataの代わりにTCPプロトコルを使用してDispatcherに接続する必要があります。

質問:私は、同じルールがISAPIアプリケーションに適用可能であることを仮定してcorrent

アム?私はISAPIアプリケーションからCodeSiteメッセージを取得するためにTCPを使用する必要がありますか?

答えて

6

ISAPIがIISからロードされ、IISがサービスとして実行されているという事実を考えれば、そうです。

3

デフォルト設定では、yesです。しかし、もっと多くのことがあります。 新しいバージョンについてはわかりませんが、IIS 6では分離レベルを高く設定すると、ISAPI dllはCOM +でdllhost.exeプロセスから実行されます。コンポーネントサービス管理ツール(以前はDCOM設定と呼ばれていました)では、現在ログオンしているユーザーを使用するように 'アクティベーション'設定を変更することができ、dllhost.exeインスタンスはアクティブウィンドウステーションで実行されます。 (/ProcessID:{}パラメータとCOM +エントリのGUIDを使用して、dllhost.exeをDelphiデバッガのホストアプリケーションとして起動することもできます)

これまでにIIS 7で見たことは、w3wp.exeですISAPI dllをロードして実行しますが、上記のようなものが適用されるかどうかはわかりません。アプリケーションプール設定のアクティベーション設定が類似しているかどうかを確認できます。