Я пытаюсь выяснить, как управлять временем жизни TISAPIApplication (написано в Delphi XE) в IIS 7.5 - при обнаружении неожиданного поведения:
Пул приложений ISAPI и ВСЕ УРОВНИ конфигурации IIS / ISAPI настроены для работы с анонимным доступом под определенной системной учетной записью, от самого WebServer к VD, appPool и определенной dll - это НИКОГДА не меняется. Но каждый раз, когда другой пользователь делает запрос или тот же пользователь открывает новый сеанс браузера, веб-приложение повторно инициализируется.
Я ожидал, что webApp будет инициализирован только при первом обращении, или когда IIS будет сброшен или пул приложений будет перезапущен. Это поведение, которое я ожидал и которое мне НУЖНО - webApp должен быть SINGLETON , который порождает поток для каждого нового запроса, независимо от пользовательских или пользовательских сессий.
Клиенты используют IIS 8 или FireFox 6 (я считаю, что это не имеет значения - различия между ними, которые я наблюдал, связаны со схемами кэширования в браузере и т. Д., А не с приложением ISAPI).
Клиенты работают под управлением Win XP SP3 или Win 7 64 - ОС, похоже, не влияет на поведение.
Мониторинг / Обратная связь:
Я регистрирую запись в журнале событий каждый раз, когда приложение ISAPI инициализируется, и возвращаю счетчик на веб-странице, показывающий количество запросов, обработанных приложением после инициализации, по состоянию на этот запрос.
Я работал с различными «расширенными настройками» на уровне пула приложений IIS 7.5 - пока не повезло.
Может ли кто-нибудь объяснить поведение, которое я вижу, и как изменить его так, чтобы экземпляр TISAPIApplication вел себя как синглтон?