*) IIS 7.5 - Server 2008 R2 で実行されている Delphi XE ISAPI dll があります。DLL は TISAPIApplication のインスタンスを起動します。アプリケーションは、目立たない固定の事前定義された URL に存在し、特定のポート (ポート 80 ではない) で要求をリッスンします。もちろん、これらはすべて「標準構成」です。
*) 私のサーバーにはいくつかの dll があり、それぞれが TISAPIApplication の異なるインスタンスを起動し、異なる URL にマップされ、異なるポートでリッスンします。実行時に、ポート番号に基づいてアプリケーションのさまざまなインスタンス (Dev、Prod、FailOver など) を区別します (URL を解析するよりも簡単です)。
*) TISAPIApplication とその祖先および関連クラスのドキュメントとソース コードを調べましたが、アプリケーションの特定のインスタンスがリッスンしているポートを示すプロパティがどこにも見つかりません。リクエストごとにのみ利用可能です。単純な展開では、リスニングポートは通常静的であるため、アプリの起動時にそのポート値を取得できるはずです-これにより、リクエストが来るのを待つ代わりに、特定のリソースの割り当てが容易になります.
*)これを行う方法を知っている人はいますか? どのプロパティをどこから取得する必要がありますか? 実際、アプリケーション自体が存在する URL について何かを教えてくれるものはまったく見つかりません。すべてが要求ごとに機能しているようです。
(お願いします - リクエストを介してそれを行う方法や、HTTP はステートレスであり、すべてがリクエストごとに機能することを教えてくれる回避策を探しているわけではありません - 私はそれらの回避策を知っており、それらを使用したくありません。そして、スレッドは、「ステートレス」な方法で要求を処理するために ISAPI によって生成されます。IIS によって ISAPI dll がロードされると、TISAPIApplication インスタンスが起動されます。この TISAPIApplication インスタンスは、ISAPI アプリケーションの存続期間中持続し、存続期間中有効な状態情報を含みます。アプリケーション インスタンスの )。
ティア