Діагностика та виправлення помилок у додатках IIS

Кен СпенсерПодумки повертаючись до перших днів ажіотажу навколо Web, згадую нерухомі Web-сторінки та картинки у вікні браузера. На той час Web-сервер міг лише обробляти запити на передачу файлів за протоколом HTTP. Можливості сучасних Web-серверів набагато ширші, але й клопоту з їх обслуговуванням у адміністраторів стало значно більше. Тепер Web-сервери перетворилися на повноцінні сервери додатків: на них встановлюють потужні програмні пакети, їх пов'язують із базами даних та безліччю інших систем. Web-сервери більше не займаються тільки передачею файлів, їм доводиться здійснювати різні технологічні процедури і керувати ними, а також керувати комплексним обміном інформацією між користувачами і сервером. Всі ці процеси настільки складні, що можливість відмови сучасного Web-сервера досить висока.

Режим ядра та фоновий режим

виправлення
ЕКРАН 1. Сторінка властивостей тестового докладання.

Треба відзначити, що Web-вузли, на яких встановлені лише IIS, не потрібно часто перезавантажувати або переналаштовувати, оскільки сервер функціонує дуже стійко. Наприклад, у мого провайдера 17 надійно працюючих серверів IIS 4.0 під керуванням Windows NT 4.0 Server з SP5, на яких виконуються програми HTML, Active Server Pages (ASP) та COM.

Робота додатків у внутрішньопроцесному режимі набуває іншого відтінку, коли вони використовують COM-об'єкти. Хоча ці об'єкти дозволяють значно розширити функції сервера, їх використання потребує вирішення таких завдань, як визначення місця розміщення об'єктного компонента, контроль за тим, хто має до нього доступ, та формування процедури заміни компонентів.

Хоча мій Інтернет-провайдердокладає всіх зусиль для того, щоб його COM-об'єкти працювали надійно, у другій половині 1998 року я помітив, що мій вузол протягом деякого часу функціонує нормально, а потім його продуктивність поступово падає до нуля. Зниження продуктивності мало місце протягом кількох тижнів або місяців і мало безладний характер. Коли я викликав спеціаліста з технічної підтримки, він з'ясував, що мій вузол працює у позапроцесному режимі. Як тільки його перевели на роботу у внутрішньопроцесному режимі, все стало на свої місця.

Після того, що сталося, я розмовляв з кількома людьми, яким довелося зіткнутися з подібною ситуацією. Ми зійшлися на тому, що програми IIS 4.0, що працюють у позапроцесному режимі, часто викликають проблеми, які змушують перезавантажувати сервер. Я знаю адміністраторів, які запускають програми intranet у фоновому режимі для запобігання відмови серверів, але при цьому періодично перезавантажують їх. Такий підхід допомагає, тому адміністраторам доводиться миритися з неприємностями.

Для управління позапроцесними та внутрішньопроцесними компонентами IIS 4.0 задіює Microsoft Transaction Server (MTS), який формує звані пакети MTS. Ці пакети є контейнерами для одного або декількох COM-компонентів, і вони ж визначають простір імен цих компонентів. Управління пакетами MTS покладено програму mtx.exe. Контролювати роботу екземплярів mtx.exe, створюваних MTS під час запуску фонових програм, можна за допомогою утиліти Task Manager.

Monitor
ЕКРАН 2. Конфігурування запуску пакета MTS.

Щоб ізолювати некоректно працюючі програми IIS, потрібно змінити налаштування пакетів MTS, що використовуються, і переконатися, що вонипрацюють як серверні (тобто встановлений перемикач Server Packages), а не як бібліотечні. Внаслідок цього постраждає продуктивність, але IIS залишиться працездатним у разі відмови об'єкта MTS.

IIS Exception Monitor

Служба IIS Exception Monitor допомагає адміністраторам виявляти причини збою у роботі IIS. Цей інструмент призначений для контролю за роботою IIS та виправлення помилок у разі порушень у роботі сервера. У цьому тип виконуваної диспетчером операції залежить з його конфігурації.

Процедура установки IIS Exception Monitor проста і займає лише кілька хвилин. Для її виконання необхідно запустити на сервері IIS програму ixcptmon.exe. через меню Programs. Виконуваний файл перебуває у каталозі, куди завантажувалася програма (за замовчуванням — C:\ixcptmon). Після запуску програми подальші дії підкаже майстер установки.

Запустивши IIS Exception Monitor, потрібно в першому діалоговому вікні натиснути кнопку Next. У другому діалоговому вікні слід встановити перемикач Yes, Verify the IIS symbols that I have installed, а потім знову натиснути Next. В результаті цих дій диспетчер виключень перевірить систему та з'ясує, які символьні файли необхідні. Ці файли містять дані, які потрібні диспетчеру для налагодження процесу IIS, вони дозволяють йому виявити джерело помилок.

ЕКРАН 3. Екран зі списком файлів, необхідних для налагодження IIS.

З'ясувавши, які символьні файли потрібні системі, диспетчер відобразить їх список, показаний на екрані 3. Склад списку залежить від конкретної конфігурації. Після закінчення процедури аналізу системи слід встановити прапорець Determine which symbol packages can be installed from Microsoft's Internet Site і натиснути Next. У відкритомудіалоговому вікні Download Symbols потрібно вибрати перший символьний файл у списку та клацнути мишею на кнопці Download, а потім, щоб завантажити файл, на кнопці Next. Послідовно виконуючи цю операцію, завантажте всі потрібні файли (процедура може тривати кілька хвилин). Як тільки процес завантаження файлів завершиться, програма запропонує встановити їх.

Щоб розпочати сеанс IIS Exception Monitor, потрібно знову запустити ixcptmon.exe. Якщо програма все ще працює після встановлення символьних файлів, скористайтеся поточним сеансом. У разі повторного запуску в діалоговому вікні Check Symbols слід встановити перемикач No, I am confident that the symbols are installed correctly, а потім натиснути кнопку Next.

Параметри діалогового вікна Session Options визначають, як працюватиме IIS Exception Monitor. Пропонується два варіанти: вибрати режим контролю в одному сеансі або рекурсивний режим Recursive Mode для моніторингу процесів до виникнення неполадок у роботі сервера. Коли IIS Exception Monitor виявить помилку у рекурсивному режимі, він зробить запис у протоколі, зупинить та перезапустить процес inetinfo.exe, а потім відновить моніторинг. Якщо в цьому режимі відхилення диспетчер виявить серйозну помилку, він зупинить IIS і перезавантажить сервер.

Перемикач Manual діалогового вікна Session Options дозволяє запустити диспетчер винятків у ручному режимі (наприклад, для виконання робіт, пов'язаних із супроводом). Цей режим стане в нагоді під час роботи з фахівцем служби технічної підтримки Microsoft — він дозволить йому отримати віддалений доступ до несправного сервера та взяти участь у вирішенні проблеми.

Вибравши параметри в діалоговому вікні Session Options, потрібно клацнути мишею на кнопці Next, потім у відкритомуУ діалоговому вікні Start Monitoring натиснути Run This Monitoring Session. Коли IIS Exсeption Monitor запустить файл ixcptmon.vbs з відповідними перемикачами, розпочнеться сеанс моніторингу. Після завантаження сценарію ixcptmon.vbs з'явиться вікно сеансу командного рядка. Не варто його закривати - воно необхідне для роботи сценарію. Після запуску сеансу натисніть кнопку Next, щоб відкрити вікно Session Status. Це вікно забезпечує інтерфейс користувача до процесу IIS Exception Monitor.

ЕКРАН 4. Список журналів, створених, IIS Exception Monitor.