*) У меня есть DLL-библиотека Delphi XE ISAPI, работающая под управлением IIS 7.5 - Server 2008 R2. DLL запускает экземпляр TISAPIApplication. Приложение находится по дискретному, фиксированному, заранее заданному URL-адресу и прослушивает запросы на конкретном порту (не на порту 80) - все это, конечно, «стандартная конфигурация».
*) На моем сервере у меня есть несколько библиотек DLL, каждая из которых запускает свой экземпляр TISAPIApplication, сопоставляется с другим URL-адресом и прослушивает другой порт. Во время выполнения я различаю различные экземпляры приложения (Dev, Prod, FailOver и т. Д.) По номеру порта (проще, чем парсинг URL).
*) Я просмотрел документы и исходный код TISAPIApplication, его предка и связанных с ним классов, , но я нигде не могу найти свойство, которое сообщает мне, на каком порту прослушивается конкретный экземпляр приложения. - кажется, что порт доступен только по запросу на основе запроса. Мне кажется, что поскольку в простых развертываниях порт прослушивания обычно статичен, я должен иметь возможность получить это значение порта при запуске приложения - это облегчит распределение определенные ресурсы, а не ждать поступления запроса и т. д.
*) Кто-нибудь знает, как это сделать? Какое свойство мне нужно получить и откуда? На самом деле, я вообще не могу найти ничего, что могло бы рассказать мне об URL, в котором находится само приложение - кажется, что все работает на основе запроса.
(
Пожалуйста - я не ищу обходных путей, говорящих мне, как сделать это через запрос, или что HTTP не имеет состояния, и все работает на основе запроса - я знаю эти обходные пути и не хочу их использовать.
И хотя ISAPI порождает потоки для обработки запросов в режиме без сохранения состояния, экземпляр TISAPIApplication запускается, когда DLL-библиотека ISAPI загружается IIS, и этот экземпляр TISAPIApplication сохраняется в течение всего времени жизни приложения ISAPI и содержит информацию о состоянии, которая является действительной. за время существования экземпляра приложения
).
ТИА