Мониторинг обменных курсов валют
18c0693f

Странный Microsoft IIS или SSI своими руками


Раздел Сокровищница

Server Side Include (SSI) полезная и удобная вещь. Только вот почему-то ограничены ее возможности в IIS всего несколькими директивами. И тем более странно ведет себя #exec если в качестве выполнимого скрипта подставить ISAPI написанную на Delphi.
Ошибки выдаются разные, но смысл их один - Не могу выполнить скрипт, файл не найден :-( Данные мучения в связке IIS 5.0, Windows 2000 Prof, Delphi 6 Enterprise продолжались несколько дней, пока не родилась мысль написать свой SSI.

Задача:Написать свой SSI. Условия:Имеем Microsoft IIS 5.0, Delphi Решение: ШАГ 1. Создание DLL которая служит интерпретатором SSI. Для этого в Delphi меню File/New/Other... Выбираем <Web Server Application>. В появившемся окне выбираем жмем кнопку OK.

В созданном WebModule добавляем одну Action Устанавливаем ее свойство Default:=True.

Создаем обработчик события OnAction. Туда можно вставить например следующий код var i: TStringList; begin i:=TStringList.Create; i.LoadFromFile(Request.PathTranslated); Response.Content:= i.Text+ Request.PathTranslated; end; или такой var i: TStringList; begin Response.Content:= 'Пользователь запросил файл: ' + Request.PathTranslated; end; Компилируем модуль.
Полученную DLL можно уложить в директорий C:\WINNT\system32\inetsrv\ ШАГ 2. Настройка IIS.

Результат. Теперь при запросе у IIS файла с расширением .html (или которое вы указали выше) будет вызываться ваша DLL. А там уж что хотите с этим, то и делайте. Самое главное вызываемый файл может реально и не существовать.

С помощью свойств объекта Request можно получить локальное имя запрашиваемого файла: Request.PathTranslated (Например c:\winnt\demo.html).

Также в свойствам данного объекта доступна куча другой информации (см. Help).

А где же SSI спросит Читатель?

Так вот же! У Вас есть координаты запрашиваемого файла, с помощью средств Delphi обрабатывайте его и отсылайте клиенту.

Кстати используя данную технологию возможно создание очень интересной модели, когда файла самого на диске нет, а запрос пользователя используется только для поиска самого файла в базе данных.

А если взглянуть на это чуть шире - ведь это путь создания динамического WWW-сайта с помощью одной DLL... ;-)

Пащенко Андрей (Big Bibigon)
Архангельск, 2002.







Самый выгодный курс обмена валюты