ASP - IIS и службы компонентов
IIS и службы компонентов работают вместе для формирования базовой архитектуры для построения веб-приложений. IIS использует функциональные возможности, предоставляемые службами компонентов для:
- Изолирования приложений в отдельные процессы.
- Управления связью между компонентами COM (включая встроенные объекты ASP).
- Координации обработки транзакций в приложениях ASP, использующих транзакции.
Примечание. В IIS версии 4.0 поддержку транзакций обеспечивал Microsoft Transaction Server (MTS). В IIS 5.0 и Windows 2000 службы компонентов обеспечивают все возможности поддержки транзакций, предлагаемые MTS, и, кроме того, ряд возможностей по разработке и использованию компонентов.
IIS определяет веб-приложения как набор файлов ресурсов, которые сгруппированы в логические пространства имен. Группировка ресурсов в приложения дает возможность совместно использовать данные в пространстве имен и запускать приложения в изолированных процессах.
IIS координирует изолированные приложения с помощью объекта, известного как диспетчер веб-приложений. Этот объект включает общий интерфейс (IWAMAdmin), который можно использовать для создания программ для администрирования веб-приложений. Когда веб-приложение запускается в изолированном процессе, IIS использует службы компонентов для координации одновременного доступа к ресурсам и обмена информацией контекста между компонентами COM.
IIS использует объект службы компонентов ObjectContext обеспечения доступа компонентов COM, вызванных ASP, к встроенным объектам ASP. Например, если на Visual Basic строится компонент COM, которому нужен доступ к подчиненной форме файла HTML, можно итспользовать приведенную ниже программу:
Dim objObjectContext As ObjectContext
Dim vntIn As Variant
Set objObjectContext = GetObjectContext ()
vntIn = objObjectContext.Item("Request").Form("Field1")
Службы компонентов используют ObjectContext для обслуживания сведений об отдельном экземпляре компонента COM. Когда IIS компилирует сценарий ASP, вызываются службы компонентов для создания ObjectContext, хранящего трассировочную информацию о сценарии ASP. ObjectContext включает свойство, кторое однозначно идентифицирует экземпляр сценария ASP. Например, если ASP-сценарий создает экземпляры COM-компонентов, которые регистрируются службами компонентов, каждый из этих объектов связывается с объектом ObjectContext сценария ASP. Аналогично, когда создается сценарий ASP, работающий с транзакциями, с помощью директивы @Transaction, служба компонентов получает уведомление, и запускается новая транзакция. Службы компонентов в дальнейшем будут координировать одновление всех ресурсов, находящихся под их контролем. Службы компонентов гарантируют целостность транзакции, отслеживая все изменения в сохраненных ресурсах.
Примечание. В IIS версии 4.0 поддержку транзакций обеспечивал Microsoft Transaction Server (MTS). В IIS 5.0 и Windows 2000 службы компонентов обеспечивают все возможности поддержки транзакций, предлагаемые MTS, и, кроме того, ряд других возможностей.
Дополнительные сведения об изолировании приложений и управлении ими см. в разделе Задание границ приложения.
Дополнительные сведения об обработке транзакций см. в разделах Обработка транзакций, Представление о транзакциях, и в документации служб компонент в пакете SDK операционной системы.