*) 我有一个在 IIS 7.5 - Server 2008 R2 下运行的 Delphi XE ISAPI dll。DLL 启动 TISAPIApplication 的一个实例。该应用程序驻留在一个谨慎的、固定的、预定的 URL 上,并在特定端口(不是端口 80)上侦听请求——所有这些当然是“标准配置”。
*) 在我的服务器上,我有几个 dll,每个 dll 启动不同的 TISAPIApplication 实例,映射到不同的 URL,并侦听不同的端口。在运行时,我根据端口号(比解析 URL 更容易)区分应用程序的各种实例(Dev、Prod、FailOver 等)。
*)我查看了 TISAPIApplication 及其祖先和关联类的文档和源代码,但我在任何地方都找不到告诉我应用程序的特定实例正在侦听哪个端口的属性 - 端口似乎是仅在逐个请求的基础上提供。在我看来,由于在简单部署中侦听端口通常是静态的,我应该能够在应用程序启动时获取该端口值 - 这将有助于分配某些资源,而不是等待请求进入等。
*)有人知道怎么做吗?我需要抢夺什么财产,从哪里抢夺?事实上,我根本找不到任何可以告诉我有关应用程序本身所在的 URL 的任何信息 - 一切似乎都在每个请求的基础上工作。
(请 - 我不是在寻找解决方法来告诉我如何通过请求来完成它,或者 HTTP 是无状态的,并且一切都基于每个请求进行 - 我知道这些解决方法并且不想使用它们。而且,虽然线程由 ISAPI 生成以以“无状态”方式处理请求,当 IIS 加载 ISAPI dll 时启动 TISAPIApplication 实例,并且此 TISAPIApplication 实例在 ISAPI 应用程序的整个生命周期内持续存在,并包含在生命周期内有效的状态信息应用程序实例)。
TIA