Программирование в IIS

       

Извлечение информации из IIS


ECB обычно используется для извлечения информации о запросе HTTP и экземпляре сервера IIS, посредством чего расширение ISAPI выполняет определенные программные действия на основе события запроса. В коде листинга 5.3, взятого из расширения ISAPI SEUX (Простое расширение с использованием XML), функция HttpExtensionProc выполняет следующие задачи.

  • Построение документа XML со множеством общих серверных переменных, получаемых из функции GetServerVariable.
  • Добавление свойств ECB в документ XML.
  • Возврат документа XML запрашивающей стороне.

Листинг 5.3. HttpExtensionProc Function Building XML Document in SEUX ISAPI Extension (html, txt)

Примечание. Исходный код SEUX доступен на веб-сайте автора книги (см. введение).


// End THE ECBServerVariable VARIABLES sDoc += string(XML_L_END) + string("ECBServerVariable") + string(XML_R) + string(NEW_LINE);

//START THE ECBProperties sDoc += string(XML_L) + string("ECBProperties") + string(XML_R) + string(NEW_LINE);

GetElement(string("lpszLogData"), string(pECB->lpszLogData),&sDoc); GetElement(string("lpszMethod"), string(pECB->lpszMethod),&sDoc); GetElement(string("lpszQueryString"), string(pECB->lpszQueryString),&sDoc); GetElement(string("lpszPathInfo"), string(pECB->lpszPathInfo),&sDoc); GetElement(string("lpszContentType"), string(pECB->lpszContentType),&sDoc);

//end THE ECBProperties sDoc += string(XML_L_END) + string("ECBProperties") + string(XML_R) + string(NEW_LINE);

//end our XML document sDoc += string(XML_L_END) + string(MAIN_ELEMENT_NAME) + string(XML_R) + string(NEW_LINE);

//write it! SendResponse(pECB,sDoc);

return HSE_STATUS_SUCCESS; }

Листинг 5.3. HttpExtensionProc Function Building XML Document in SEUX ISAPI Extension

Примечание. Исходный код SEUX доступен на веб-сайте автора книги (см. введение).


Содержание раздела