<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_isapi

Description: Расширения ISAPI в пределах Apacheа для Windows
Status: основа
Module Identifier: isapi_module
Source File: mod_isapi.c
Compatibility: Win32 только

резюме

этот модуль осуществляет программный интерфейс приложения расширения Сервера интернета. Это позволяет расширения Сервера интернета ( например. ISAPI .dll модули), чтобы служиться Apache для Windows, подвергните известным ограничениям.

модули расширения ISAPI (.dll файлы) написаны третьими лицами. Апачская Группа не делает автора эти модули, таким образом мы не обеспечиваем никакой поддержки им. Пожалуйста свяжитесь с автором ISAPI непосредственно, если Вы испытываете проблемы, управляющие их расширением ISAPI. пожалуйста не делать объявить такие проблемы к спискам Апача или ошибке, сообщая о страницах.

директивы

темы

top

Usage

в файле конфигурации сервера, используйте AddHandler директива, чтобы связать файлы ISAPI с isapi-handler тренер, и карта это к ним с их расширениями файла. Чтобы позволять любому .dll файлу быть обработанным как расширение ISAPI, редактируйте httpd.conf файл и добавьте следующую линию:

AddHandler isapi-handler .dll

в версиях Apacheского сервера до 2.0.37, использования isapi-isa вместо isapi-handler . новое название тренера не доступно до версии 2.0.37. Для совместимости, конфигурации могут продолжить использовать isapi-isa через все версии Apacheа до 2.3.0.

нет никакой способности в пределах Apacheского сервера, чтобы оставить требуемый модуль загруженным. Однако, Вы можете предварительно загрузить и держать определенный модуль загруженным при использовании следующего синтаксиса в вашем httpd.conf:

ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll

действительно ли Вы предварительно загрузили расширение ISAPI, всеми расширениями ISAPI управляют те же самые разрешения и ограничения как подлинники CGI. Таким образом, Options ExecCGI должен быть установлен для справочника, который содержит ISAPI .dll файл.

обзор Additional Notes и Programmer's Journal для дополнительных деталей и разъяснения определенной поддержки ISAPI, предлагаемой mod_isapi .

top

Additional Notes

выполнение Апача ISAPI приспосабливает всем ISAPI 2.0 спецификациям, за исключением некоторых "определенных для Microsoft" расширений, имеющих дело с асинхронным вводом / выводом. Модель ввода / вывода Апача не позволяет асинхронное чтение и письмо в манере, что ISAPI мог получить доступ. Если ИЗА пробует получить доступ к неподдержанным особенностям, включая async ввод / вывод, сообщение помещено в ошибочную регистрацию, чтобы помочь с отладкой. Так как эти сообщения могут стать наводнением, директивой ISAPILogNotSupported Off существует к тихому этот шум.

некоторые серверы, как Microsoft IIS, загружают расширение ISAPI в сервер и держат загруженное, пока использование памяти не слишком высоко, или если варианты конфигурации определены. Апач в настоящее время загружает и разгружает расширение ISAPI каждый раз, когда это не требует, если ISAPICacheFile директива определена. Это неэффективно, но модель памяти Апача делает это самым эффективным методом. Много модулей ISAPI тонко несовместимы с Apacheским сервером, и разгрузка этих модулей помогает гарантировать стабильность сервера.

кроме того, помните это, в то время как Apache поддерживает Расширения ISAPI, это не поддерживает Фильтры ISAPI . поддержка фильтрам может быть добавлена позднее, но никакая поддержка не запланирована в это время.

top

Programmer's Journal

если Вы программируете Apacheа 2.0 mod_isapi модули, Вы должны ограничить ваши звонки ServerSupportFunction к следующим директивам:

HSE_REQ_SEND_URL_REDIRECT_RESP
переадресовать пользователя к другому местоположению.
это должен быть полностью компетентный URL ( например. http://server/location ).
HSE_REQ_SEND_URL
переадресовать пользователя к другому местоположению.
это не может быть полностью компетентный URL, Вам не разрешают передать протокол или название сервера ( например. просто /location ).
это переназначение обработано сервером, не браузером.

предупреждение

в их недавней документации, Microsoft, кажется, оставляет различие между двумя HSE_REQ_SEND_URL функции. Апач продолжает рассматривать их как две отличных функции с различными требованиями и поведениями.

HSE_REQ_SEND_RESPONSE_HEADER
Apache принимает тело ответа после удара головой, если это следует за чистой линией (два последовательных newlines) в ударах головой натягивают аргумент. Это тело не может содержать ПУСТЫЕ УКАЗАТЕЛИ, так как аргумент ударов головой ПУСТОЙ законченный.
HSE_REQ_DONE_WITH_SESSION
Apache рассматривает это не, так как сессия будет закончена, когда ISAPI возвращается из обработки.
HSE_REQ_MAP_URL_TO_PATH
Apache переведет действительное название к физическому названию.
HSE_APPEND_LOG_PARAMETER
это зарегистрированное сообщение может быть захвачено в любой из следующих регистраций:

первый выбор, %{isapi-parameter}n компонент, является всегда доступным и привилегированным.

HSE_REQ_IS_KEEP_CONN
возвратится договорные Держат - Живой статус.
HSE_REQ_SEND_RESPONSE_HEADER_EX
будет вести себя как зарегистрировано, хотя fKeepConn флаг игнорируется.
HSE_REQ_IS_CONNECTED
сообщит ложный, если запрос был прерван.

Apacheские возвращения FALSE к любому неподдержанному звонку ServerSupportFunction , и наборы GetLastError ценность к ERROR_INVALID_PARAMETER .

ReadClient восстанавливает тело запроса, превышающее начальный буфер (определенный ISAPIReadAheadBuffer ). Основанный на ISAPIReadAheadBuffer урегулирование (число байтов на буфер до запроса тренера ISAPI) более короткие запросы посылают полными расширению, когда это призвано. Если запрос более длинен, расширение ISAPI должно использовать ReadClient восстановить остающееся тело запроса.

WriteClient поддержан, но только с HSE_IO_SYNC флаг или никакой флаг выбора (ценность 0 ). Любой другой WriteClient запрос будет отклонен с ценностью возвращения FALSE , и a GetLastError ценность ERROR_INVALID_PARAMETER .

GetServerVariable поддержан, хотя расширенные переменные сервера не существуют (как определено другими серверами.) Все обычные Apacheские переменные окружающей среды CGI доступны от GetServerVariable , так же как ALL_HTTP и ALL_RAW ценности.

Apache 2.0 mod_isapi поддерживает дополнительные особенности, введенные в более поздних версиях спецификации ISAPI, так же как ограниченной эмуляции async ввода / вывода и TransmitFile семантика. Апач также поддерживает предварительно загружающий ISAPI .dlls для работы, ни один из которых не были доступными под Apache 1.3 mod_isapi .

top

ISAPIAppendLogToErrors Directive

Description: отчет HSE_APPEND_LOG_PARAMETER запросы от расширений ISAPI до ошибочной регистрации
Syntax: ISAPIAppendLogToErrors on|off
Default: ISAPIAppendLogToErrors off
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_isapi

отчет HSE_APPEND_LOG_PARAMETER запросы от расширений ISAPI до ошибочной регистрации сервера.

top

ISAPIAppendLogToQuery Directive

Description: отчет HSE_APPEND_LOG_PARAMETER запросы от расширений ISAPI до области вопроса
Syntax: ISAPIAppendLogToQuery on|off
Default: ISAPIAppendLogToQuery on
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_isapi

отчет HSE_APPEND_LOG_PARAMETER запросы от расширений ISAPI до области вопроса (приложенный к CustomLog %q компонент).

top

ISAPICacheFile Directive

Description: ISAPI .dll файлы, которые будут загружены при запуске
Syntax: ISAPICacheFile file-path [ file-path ] ...
Context: сервер config, действительный хозяин
Status: основа
Module: mod_isapi

определяет отделенный местом список названий файла, которые будут загружены, когда Apache сервер начат, и оставаться загруженным, пока сервер не закрыт. Эта директива может быть повторена для каждого ISAPI .dll желательный файл. Полное название дорожки каждого файла должно быть определено. Если название дорожки будет не абсолютно, то относительно этого будут рассматривать ServerRoot .

top

ISAPIFakeAsync Directive

Description: фальсифицировать асинхронную поддержку отзывам ISAPI
Syntax: ISAPIFakeAsync on|off
Default: ISAPIFakeAsync off
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_isapi

в то время как установлено в на, асинхронная поддержка отзывам ISAPI моделируется.

top

ISAPILogNotSupported Directive

Description: регистрировать неподдержанные запросы особенности от расширений ISAPI
Syntax: ISAPILogNotSupported on|off
Default: ISAPILogNotSupported off
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_isapi

регистрации все запросы о неподдержанных особенностях от расширений ISAPI в ошибочной регистрации сервера. Это может помочь администраторам разыскивать проблемы. После того, как набор к на и все желали, чтобы модули ISAPI функционировали, это должно быть задержано к прочь.

top

ISAPIReadAheadBuffer Directive

Description: размер Прочитанного Вперед Буфер, посланный расширениям ISAPI
Syntax: ISAPIReadAheadBuffer size
Default: ISAPIReadAheadBuffer 49152
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_isapi

определяет максимальный размер Прочитанного Вперед Буфер, посланный расширениям ISAPI, когда они первоначально призваны. Все остающиеся данные должны быть восстановлены, используя ReadClient отзыв; некоторые расширения ISAPI, возможно, не поддерживают ReadClient функция. Отнесите вопросы к автору расширения ISAPI.