TISAPIApplication Lifetime в IIS 7.5 под управлением Windows Server 2008 RS2:

Я пытаюсь выяснить, как контролировать время жизни TISAPIApplication (написанного в Delphi XE) в IIS 7.5, но наблюдаю неожиданное поведение:

Пул приложений ISAPI и ВСЕ УРОВНИ конфигурации IIS/ISAPI настроены на запуск с анонимным доступом под определенной системной учетной записью, от самого веб-сервера до виртуального диска, пула приложений и конкретной библиотеки DLL — это НИКОГДА не меняется. Но каждый раз, когда другой пользователь делает запрос или тот же пользователь открывает новый сеанс браузера, веб-приложение повторно инициализируется.

Я ожидал, что веб-приложение будет инициализировано только при первом попадании или при сбросе IIS или повторном использовании пула приложений. Это поведение, которое я ожидал и которое мне НУЖНО - веб-приложение должно быть SINGLETON, которое порождает поток для каждого нового запроса, независимо от пользователя или пользовательских сеансов.

Клиенты работают под управлением IIS 8 или FireFox 6 (я считаю, что это не имеет значения - различия между ними, которые я наблюдал, связаны со схемами кэширования браузера и т. д., а не с приложением ISAPI).

Клиенты работают под управлением Win XP SP3 или Win 7 64 - ОС, похоже, не влияет на поведение.

Мониторинг/обратная связь:

Я регистрирую запись в журнале событий каждый раз, когда приложение ISAPI инициализируется, и возвращаю счетчик на веб-странице, указывающий количество запросов, обработанных приложением после инициализации, начиная с этого запроса.

Я работал с различными «расширенными настройками» на уровне пула приложений IIS 7.5 — пока безуспешно.

Может ли кто-нибудь объяснить поведение, которое я вижу, и как его изменить, чтобы экземпляр TISAPIApplication вел себя как синглтон?


person Vector    schedule 12.09.2011    source источник


Ответы (1)


Может ли быть так, что IIS запускает несколько экземпляров w3wp.exe для загрузки вашей ISAPI dll, и вы получаете сообщение об инициализации веб-приложения от каждого из них при запуске? Существует настройка пула приложений, ограничивающая количество запущенных вместе w3wp.exe. В некоторых случаях лучшим значением для этого параметра является 1.

person Stijn Sanders    schedule 12.09.2011