Iis остановка изолированных приложений

Содержание

Iis остановка изолированных приложений

Добрый день уважаемые читатели, в прошлый раз мы с вами установили IIS 7 и IIS 8.5, я показал вам, как создавать там сайты, по протоколам http и https с использованием SSL сертификатов. Предположим, что вам на какое-то время нужно отключить IIS в Windows, это может быть по ряду причин, тестовый период закончили по сайту или проект пока прикрыт, до лучших времен, и вот чтобы не кушались ресурсы вашего сервера, вам его нужно потушить, я покажу как правильно это делать.

Что такое отключение IIS

Давайте теперь определимся с понятием отключение — это не удаление самой роли IIS, это просто отключение автозапуска и службы, чтобы она не запускалась вместе с операционной системой Windows Server или Windows 10 и ниже.

Временное отключение IIS Windows

Если вам нужно на короткое время выключить данную службу, то у вас 3 способа:

  • Через консоль диспетчер IIS
  • Через консоль службы
  • Через командную строку

Давайте начнем с первого метода, открываем оснастку диспетчер Internet Information Services. Находится он в серверных операционных системах в диспетчере сервера > Средства

Либо в любой ОС, можно нажать WIN+R и ввести сокращенное название оснастки mmc inetMgr

В поле «Управление сервером» выбираем действие «Остановить», служба будет потушена.

Остановка IIS из командной строки

Теперь давайте остановим IIS через командную строку, делается это одной командой

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

Ну и проведем отключение, через оснастку службы, для этого нажмите WIN+R и введите services.msc, мы уже тут раньше перезапускали службу печати.

Находим службу IIS Admin, заходим в ее свойства через правый клик. Сразу видите тут кнопку остановить.

Запретить автозапуск (автозагрузку) IIS

Ну и давайте сделаем так, чтобы Internet Information Services не стартовала при запуске системы. Находясь в оснастке службы, в свойствах изменим тип запуска, с автоматического на остановлено.

Все, как видите, отключить автозапуск iis очень просто, буквально два клика, не забываем еще нажать кнопку «Остановить»

Все служба IIS Admin отключена и задание выполнено.

Полезные команды IIS

Перезапуск Internet Information Services — iisreset

Диагностика и исправление ошибок в приложениях IIS

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

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

Основное преимущество Microsoft Internet Information Server (IIS) 4.0 заключается в его способности выполнять приложения как внутри собственного процесса, так и вне его. По умолчанию, IIS запускает каждое приложение в рамках адресного пространства своего собственного процесса (inetinfo.exe). Чтобы оценить интенсивность работы приложений в этом режиме, можно запустить утилиту Task Manager или Performance Monitor и посмотреть, как процесс inetinfo.exe использует ресурсы процессора.

Выполнение приложений в адресном пространстве процесса IIS обеспечивает им максимально быстрый доступ к ресурсам сервера и повышает эффективность их работы. В таком режиме, например, работает высокопроизводительное приложение FMStocks, разработанное для Microsoft компанией Vertigo Software. В то же время запуск всех программ в адресном пространстве IIS 4.0 имеет свои недостатки, поскольку в этом случае они могут воздействовать друг на друга. Так, отказ одного из них вполне может привести к «обвалу» остальных. Правда, если сбой прикладного компонента произошел вследствие логической ошибки, он обычно не оказывает влияния на работу IIS и других приложений. Однако, когда такой сбой происходит в результате попытки приложения получить доступ к памяти вне адресного пространства процесса, он может привести к отказу IIS и остальных приложений.

ЭКРАН 1. Страница свойств тестового приложения.

При возникновении проблемы в работе IIS прежде всего нужно локализовать ее источник. Поэтому если приложение периодически «падает» и останавливает работу Web-сервера, его следует сконфигурировать с помощью страницы свойств для работы в отдельном адресном пространстве, что позволит предотвратить дальнейшие отказы до выяснения их причины. На Экране 1 показана страница Properties моего тестового приложения MTSTester.

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

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

Управление COM-объектами требует понимания особенностей их работы. Поскольку они представляют собой откомпилированный программный модуль, изучить их код и алгоритмы, как правило, не представляется возможным, а это затрудняет контроль за работой приложения и выявление причин возникающих отказов. Например, можно использовать приобретенные COM-объекты, разработчики которых не предоставили доступа к исходным текстам. Загрузив эти объекты, процесс IIS исполняет их код в своем адресном пространстве.

Хотя мой Internet-провайдер прилагает все усилия к тому, чтобы его COM-объекты работали надежно, во второй половине 1998 года я заметил, что мой узел в течение некоторого времени функционирует нормально, а затем его производительность постепенно падает до нуля. Снижение производительности имело место в течение нескольких недель или месяцев и носило беспорядочный характер. Когда я вызвал специалиста по технической поддержке, он выяснил, что мой узел работает во внепроцессном режиме. Как только его перевели на работу во внутрипроцессном режиме, все стало на свои места.

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

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

Желая повысить производительность, администраторы запускают пакеты MTS в адресном пространстве процесса IIS (для этого необходимы

ЭКРАН 2. Конфигурирование запуска пакета MTS.

административные привилегии MTS Explorer). Пакеты MTS могут выполняться в рамках серверного процесса (так называемые серверные пакеты) или внутри процесса вызывающего их приложения. С помощью страницы свойств можно сконфигурировать пакет для работы в рамках процесса inetinfo.exe. Чтобы открыть страницу свойств, следует запустить MTS Explorer из меню Programs, открыть папку Computers, папку необходимого компьютера, а затем папку Packages Installed. После этого нужно выбрать настраиваемый пакет и открыть его страницу свойств. На вкладке Activation, как показано на Экране 2, следует установить переключатель Library Package и нажать кнопку ОК. После такой операции объекты пакета будут работать в адресном пространстве вызывающего приложения (inetinfo.exe в случае IIS).

Чтобы изолировать некорректно работающие приложения IIS, нужно изменить настройки используемых пакетов MTS и убедиться, что они работают как серверные (т. е. установлен переключатель Server Packages), а не как библиотечные. В результате пострадает производительность, но IIS останется работоспособным в случае отказа объекта MTS.

IIS Exception Monitor

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

О том, как загрузить IIS Exception Monitor, рассказано в статье Microsoft «INFO: Troubleshooting Exceptions in Internet Server Products» (http://support.microsoft.com/support/kb/ articles/q160/3/60.asp), где есть ссылка на страницу загрузки и документации. Я настоятельно рекомендую загрузить документацию — она поможет разобраться, как работает это приложение. В файле README, который входит в комплект поставки, тоже содержится полезная информация об этом продукте.

Процедура установки 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.

В открывшемся диалоговом окне Process Options нужно указать тип процесса, который предстоит контролировать. Можно выбрать компонент, выполняющийся внутри процесса inetinfo.exe (переключатель In Process), приложение, которое должно исполняться в отдельном адресном пространстве (Out of Process), или любой другой процесс (Other Process). Установив переключатель In Process, нужно щелкнуть кнопкой Next, чтобы открыть диалоговое окно Session Options.

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

Включить рекурсивный режим можно двумя способами: установить в диалоговом окне Session Options флажок Enable Recursive Mode либо запустить сценарий ixcptmon.vbs с параметром командной строки /r. Этот же параметр позволяет отключить рекурсивный режим. В диалоговом окне Session Options также можно ввести адрес, по которому будут автоматически отправляться оповещения об ошибке (командой net send). Для этого в текстовом поле Notify Admin нужно ввести имя компьютера или пользователя. Если же в системе установлена и сконфигурирована библиотека Collaboration Data Objects (CDO), для оповещения можно использовать электронную почту. Имя компьютера или адрес электронной почты задается с помощью ключа командной строки /notify.

Переключатель 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.

Из диалогового окна Session Status можно контролировать ход активного сеанса мониторинга или просматривать файлы журналов предыдущих сеансов. Как показано на Экране 4, нужно выбрать созданный диспетчером журнал, а затем открыть его, нажав кнопку View Log. Перед просмотром журнала процесс мониторинга следует остановить. Для остановки мониторинга, а также для остановки и перезапуска IIS нужно открыть окно командной строки диспетчера и нажать клавиши CRTL+C. После этого можно вновь запустить IIS Exception Monitor и приступать к просмотру журнала.

ЭКРАН 5. Окно просмотра журнала IIS Exception Monitor.

Кнопка View Log диалогового окна Session Status открывает изображенное на Экране 5 окно Log, которое предоставляет на выбор несколько вариантов просмотра информации о статусе сеанса протоколирования и IIS. Нужный вариант просмотра можно выбрать, нажимая кнопки окна.

Iis остановка изолированных приложений

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

Илон Маск рекомендует:  pt в CSS

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

С уважением,
команда разработчиков eManual.ru

Диагностика и исправление ошибок в приложениях IIS

Мысленно возвращаясь к первым дням ажиотажа вокруг Web, вспоминаю неподвижные Web-страницы и картинки в окне браузера. В те времена Web-сервер мог лишь обрабатывать запросы на передачу файлов по протоколу HTTP. Возможности современных Web-серверов гораздо шире, но и хлопот с их обслуживанием у администраторов стало куда больше. Теперь Web-серверы превратились в полноценные серверы приложений: на них устанавливают мощные программные пакеты, их связывают с базами данных и множеством других систем. Web-серверы больше не занимаются только лишь передачей файлов, им приходится осуществлять самые разные технологические процедуры и управлять ими, а также руководить комплексным обменом информацией между пользователями и сервером. Все эти процессы настолько сложны, что вероятность отказа современного Web-сервера достаточно высока.

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

Основное преимущество Microsoft Internet Information Server (IIS) 4.0 заключается в его способности выполнять приложения как внутри собственного процесса, так и вне его. По умолчанию, IIS запускает каждое приложение в рамках адресного пространства своего собственного процесса (inetinfo.exe). Чтобы оценить интенсивность работы приложений в этом режиме, можно запустить утилиту Task Manager или Performance Monitor и посмотреть, как процесс inetinfo.exe использует ресурсы процессора.

Выполнение приложений в адресном пространстве процесса IIS обеспечивает им максимально быстрый доступ к ресурсам сервера и повышает эффективность их работы. В таком режиме, например, работает высокопроизводительное приложение FMStocks, разработанное для Microsoft компанией Vertigo Software. В то же время запуск всех программ в адресном пространстве IIS 4.0 имеет свои недостатки, поскольку в этом случае они могут воздействовать друг на друга. Так, отказ одного из них вполне может привести к «обвалу» остальных. Правда, если сбой прикладного компонента произошел вследствие логической ошибки, он обычно не оказывает влияния на работу IIS и других приложений. Однако, когда такой сбой происходит в результате попытки приложения получить доступ к памяти вне адресного пространства процесса, он может привести к отказу IIS и остальных приложений.

Диагностика и исправление ошибок в приложениях IIS Кен Спенсер
ЭКРАН 1. Страница свойств тестового приложения.

При возникновении проблемы в работе IIS прежде всего нужно локализовать ее источник. Поэтому если приложение периодически «падает» и останавливает работу Web-сервера, его следует сконфигурировать с помощью страницы свойств для работы в отдельном адресном пространстве, что позволит предотвратить дальнейшие отказы до выяснения их причины. На Экране 1 показана страница Properties моего тестового приложения MTSTester.

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

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

Управление COM-объектами требует понимания особенностей их работы. Поскольку они представляют собой откомпилированный программный модуль, изучить их код и алгоритмы, как правило, не представляется возможным, а это затрудняет контроль за работой приложения и выявление причин возникающих отказов. Например, можно использовать приобретенные COM-объекты, разработчики которых не предоставили доступа к исходным текстам. Загрузив эти объекты, процесс IIS исполняет их код в своем адресном пространстве.

Хотя мой Internet-провайдер прилагает все усилия к тому, чтобы его COM-объекты работали надежно, во второй половине 1998 года я заметил, что мой узел в течение некоторого времени функционирует нормально, а затем его производительность постепенно падает до нуля. Снижение производительности имело место в течение нескольких недель или месяцев и носило беспорядочный характер. Когда я вызвал специалиста по технической поддержке, он выяснил, что мой узел работает во внепроцессном режиме. Как только его перевели на работу во внутрипроцессном режиме, все стало на свои места.

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

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

Желая повысить производительность, администраторы запускают пакеты MTS в адресном пространстве процесса IIS (для этого необходимы

ЭКРАН 2. Конфигурирование запуска пакета MTS.
административные привилегии MTS Explorer). Пакеты MTS могут выполняться в рамках серверного процесса (так называемые серверные пакеты) или внутри процесса вызывающего их приложения. С помощью страницы свойств можно сконфигурировать пакет для работы в рамках процесса inetinfo.exe. Чтобы открыть страницу свойств, следует запустить MTS Explorer из меню Programs, открыть папку Computers, папку необходимого компьютера, а затем папку Packages Installed. После этого нужно выбрать настраиваемый пакет и открыть его страницу свойств. На вкладке Activation, как показано на Экране 2, следует установить переключатель Library Package и нажать кнопку ОК. После такой операции объекты пакета будут работать в адресном пространстве вызывающего приложения (inetinfo.exe в случае IIS).

Чтобы изолировать некорректно работающие приложения IIS, нужно изменить настройки используемых пакетов MTS и убедиться, что они работают как серверные (т. е. установлен переключатель Server Packages), а не как библиотечные. В результате пострадает производительность, но IIS останется работоспособным в случае отказа объекта MTS.

IIS Exception Monitor

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

О том, как загрузить IIS Exception Monitor, рассказано в статье Microsoft «INFO: Troubleshooting Exceptions in Internet Server Products» ( http://support.microsoft.com/support/kb/articles/q160/3/60.asp ), где есть ссылка на страницу загрузки и документации. Я настоятельно рекомендую загрузить документацию — она поможет разобраться, как работает это приложение. В файле README, который входит в комплект поставки, тоже содержится полезная информация об этом продукте.

Процедура установки 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.

В открывшемся диалоговом окне Process Options нужно указать тип процесса, который предстоит контролировать. Можно выбрать компонент, выполняющийся внутри процесса inetinfo.exe (переключатель In Process), приложение, которое должно исполняться в отдельном адресном пространстве (Out of Process), или любой другой процесс (Other Process). Установив переключатель In Process, нужно щелкнуть кнопкой Next, чтобы открыть диалоговое окно Session Options.

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

Включить рекурсивный режим можно двумя способами: установить в диалоговом окне Session Options флажок Enable Recursive Mode либо запустить сценарий ixcptmon.vbs с параметром командной строки /r. Этот же параметр позволяет отключить рекурсивный режим. В диалоговом окне Session Options также можно ввести адрес, по которому будут автоматически отправляться оповещения об ошибке (командой net send). Для этого в текстовом поле Notify Admin нужно ввести имя компьютера или пользователя. Если же в системе установлена и сконфигурирована библиотека Collaboration Data Objects (CDO), для оповещения можно использовать электронную почту. Имя компьютера или адрес электронной почты задается с помощью ключа командной строки /notify.

Переключатель 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.

Из диалогового окна Session Status можно контролировать ход активного сеанса мониторинга или просматривать файлы журналов предыдущих сеансов. Как показано на Экране 4, нужно выбрать созданный диспетчером журнал, а затем открыть его, нажав кнопку View Log. Перед просмотром журнала процесс мониторинга следует остановить. Для остановки мониторинга, а также для остановки и перезапуска IIS нужно открыть окно командной строки диспетчера и нажать клавиши CRTL+C. После этого можно вновь запустить IIS Exception Monitor и приступать к просмотру журнала.

ЭКРАН 5. Окно просмотра журнала IIS Exception Monitor.

Кнопка View Log диалогового окна Session Status открывает изображенное на Экране 5 окно Log, которое предоставляет на выбор несколько вариантов просмотра информации о статусе сеанса протоколирования и IIS. Нужный вариант просмотра можно выбрать, нажимая кнопки окна.

Кроме того, диспетчер исключений может остановить процесс inetinfo.exe и перезапустить IIS. Эту операцию выполняет входящая в состав Microsoft Windows NT Server 4.0 Resource Kit программа kill.exe, которая при установке IIS Exception Monitor размещается в папке ixcptmonbin. Программу запускает сценарий ixcptmon.vbs. Остановить iteninfo.exe можно и вручную, командой kill -f inetinfo.exe.

Для поиска и анализа ошибок в работе IIS следует переместить подозрительное приложение в отдельное адресное пространство и заставить его работать в фоновом режиме. После этого можно смело тестировать приложение, не боясь, что оно повлияет на работу IIS. Кроме того, можно переконфигурировать пакеты MTS, придав им статус серверных пакетов (установив переключатель Server Packages). Затем с помощью IIS Exception Monitor остается определить, в каком из прикладных компонентов IIS возникает сбой.

C# Разработка

Блог о создании приложений на платформе .NET Framework

13 июля 2020 г.

Автозапуск и инициализация пула приложений на версий IIS 7.5, 8.0, 8.5 и 10.

Версия IIS Операционные системы
1.0 Windows NT 3.51
2.0 Windows NT 4.0
3.0 Пакет обновления 3 для Windows NT 4.0
4.0 Пакет Option Pack для Windows NT 4.0
5.0 Windows 2000
5.1 Windows XP Professional
6.0 Windows Server 2003
7.0 Windows Vista; Windows Server 2008
7.5 Windows 7; Windows Server 2008 R2
8.0 Windows 8; Windows Server 2012
8.5 Windows 8.1; Windows Server 2012 R2
10 Windows 10; Windows Server 2020

1. Открываем Configuration Editor выделив сверху свой сервер.

2. В Section выбираем system.applicationHost/applicationPools.

3. Выделяем строку (Collection), далее справа появится кнопка с троеточием. Нажимаем на неё.

4. В появившемся окне СНАЧАЛА выбираем ваш Application Pool сверху, затем снизу выбираем startMode -> AlwaysRunning. Закрываем окно Collection Editor.

5. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

1. В разделе Section выбираем system.applicationHost/sites.

2. Выделяем строку (Collection) далее справа нажимаем на кнопку с троеточием.

3. Первым делом надо выбрать сверху ваш сайт, затем в свойствах найти applicationDefaults, раскрыть его и в свойстве preloadEnabled выставить True.

4. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

Базовые сведения об IIS

Архитектура IIS 6

Если вы работали с предыдущими версиями IIS , то заметите в версии IIS 6 значительные усовершенствования. Версия 6 намного более стабильна и безопасна в работе. При ознакомлении с данной информацией имейте в виду, что она относится к компоненту веб-сервера IIS . В шестой версии IIS службы FTP , SMTP и NNTP по -прежнему выполняются в процессе inetinfo.exe .

В предыдущих версиях IIS (см. рис. 1.6) все компоненты выполнялись в процессе inetinfo.exe или вне процесса в dllhost.exe . Сайт с ошибкой, выполняющийся в inetinfo.exe , мог вызвать сбой веб-службы со всеми вытекающими последствиями.

IIS 6 отделяет код веб-сервера от кода поддержки приложений при помощи HTTP-слушателя режима ядра http.sys и службы веб-администрирования (WAS), являющейся диспетчером процесса и конфигурации пользовательского режима (см. рис. 1.7). Эти программы не выполняют никакого стороннего кода, поэтому ошибка веб-сайта не оказывает на них никакого воздействия. Код выполняется в рабочем процессе. Рабочие процессы выполняются с помощью приложения w3wp.exe . Каждая копия w3wp.exe представляет собой отдельный рабочий процесс . Рабочие процессы существуют отдельно друг от друга и от ядра, поэтому их можно изолировать от операционной системы.

Совет. Выражение «в процессе» означает код, выполняемый в том же процессе, что и родительский. «Вне процесса» означает код, выполняемый в отдельном процессе.

Режим изоляции рабочего процесса

Веб-служба IIS 6 выполняет весь прикладной код в изолированной среде. Такой подход называется режимом изоляции рабочего процесса. Он уже был реализован в IIS ранее, однако его использование приводило к значительному спаду производительности. Однако в IIS 6 все выполняется вне процесса, поэтому никакого снижения производительности не происходит. Предыдущие версии IIS использовали процессы режима пользователя для маршрутизации запросов, направленных друг к другу. В IIS 6 запросы вызываются непосредственно из ядра, с полной изоляцией рабочих процессов друг от друга. Это помогает в том случае, если два приложения нужно отделить по причинам безопасности. В настоящий момент такие службы IIS, как FTP и SMTP, все еще выполняются в inetinfo , как и в IIS 5. Возможно, в следующей версии рабочие процессы будет изолированы и для этих служб, однако пока что они могут воздействовать на процесс inetinfo .

Режим изоляции IIS 5.0

Иногда изоляция рабочих процессов вызывает проблемы с приложениями, которым требуется доступ к данным между вхождениями или выполнение в среде пула приложений IIS 5. В данном случае IIS использует функцию режима изоляции IIS 5. Этот режим функционирует так же, как и в IIS 5, что позволяет приложениям выполняться в пуле приложений IIS 5 с сохранением возможности режима ядра http.sys ставить в очередь и обрабатывать запросы.

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

  • Интерфейсы ISAPI с несколькими вхождениями, созданные для совместного многократного использования различными процессами.
  • Чтение фильтров необработанных данных, которые могут перехватывать данные прежде, чем они достигнут веб-сайта.
  • Внутрипроцессовые сеансовые переменные состояния , так как они удаляются при каждой рециркуляции рабочего процесса.
  • Приложения, передающие выполнение задач своим собственным рабочим процессам.

Включение режима изоляции IIS 5.0. Включение режима изоляции производится на корневом уровне папки Web Sites (Веб-узлы) в IIS MMC. Это действие осуществляется для всех веб-сайтов на cервере в целом; нельзя включать этот режим для отдельных веб-сайтов. Для включения режима изоляции выполните следующие действия.

  1. Откройте окно IIS MMC.
  2. Щелкните правой кнопкой мыши на папке Web Sites (Веб-узлы) и выберите Properties (Свойства).
  3. Откройте вкладку Service (Служба). Обратите внимание на то, что вкладка доступна только на этом уровне.
  4. Отметьте поле Run WWW Service In IIS 5.0 Isolation Mode (Выполнять службу WWW в режиме изоляции IIS 5.0).
  5. Нажмите на кнопку OK для возврата в IIS MMC.

Пулы приложений

IIS вводит принципиально новый способ поддержки приложений. Пулы приложений позволяют выполнять код в изолированной среде. Каждый пул приложения обслуживается одним или несколькими рабочими процессами. При запуске IIS служба веб-администрирования (Web Administration Service) инициализирует таблицу маршрутизации пространства имен http.sys с одной записью для каждого приложения. Эта таблица определяет, к какому пулу приложений должно быть маршрутизировано приложение. При получении запроса http.sys дает WAS команду на запуск одного или нескольких рабочих процессов для поддержки этого пула приложения. Такая изоляция процессов в целом повышает стабильность веб-сервера.

Мониторинг состояния

WAS имеет возможность контролировать состояние («здоровье») IIS посредством отслеживания рабочих процессов и мониторинга степени их исправности. Это позволяет предотвратить отказы IIS. WAS отслеживает рабочие процессы посредством отправки пинг-запросов через установленные промежутки времени. Если рабочий процесс не отвечает на пинг-запрос, WAS завершает процесс и запускает новый, что сохраняет возможность системы отвечать на системные запросы даже в случае «зависания» рабочего процесса. При возникновении сбоя в рабочем процессе и его «зависании» http.sys будет выдавать последовательные запросы до тех пор, пока WAS не запустит новый рабочий процесс для поддержки этого пула приложения. Конечный пользователь столкнется с временной потерей обслуживания приложениями в данном пуле приложений, в то время как ключевые веб-службы и другие приложения продолжат свою работу.

Блокирование рабочих процессов

WAS можно настроить на блокирование рабочего процесса вместо его уничтожения, что позволяет выполнить проверку неисправного рабочего процесса.

WAS настраивается также и на выполнение команды (например, на запуск отладчика) при блокировке рабочего процесса. Рабочие процессы периодически перезапускаются в дополнение к перезапуску при возникновении ошибок, что позволяет уменьшить объем потерянных данных посредством инициализации среды и возвращения этих данных системе. При перезапуске рабочего процесса WAS создает новый рабочий процесс и сообщает существующему рабочему процессу о необходимости завершения выполняемых операций и своей работы в течение определенного времени. Это позволяет поддерживать приложение в рабочем состоянии с обновлением рабочих процессов в фоновом режиме. Если рабочий процесс не завершает работу в разрешенный промежуток времени, то он уничтожается.

Перезапуск рабочих процессов производится по следующим критериям:

  • затраченное время;
  • количество запросов;
  • время дня;
  • использование памяти;
  • время простоя;
  • использованное процессорное время.

Масштабируемость

Режим изоляции рабочих процессов позволяет улучшить масштабируемость веб-сервера. На сервере с такой конфигурацией могут существовать тысячи веб-сайтов. Каждый пул приложений контролируется в индивидуальном порядке с ограничением процессорного времени для отдельных пулов.

Веб-наборы

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

Количество запросов в очереди для каждого пула приложения указывается в http.sys при выполнении рабочего процесса в режиме изоляции. По достижении этого лимита новые запросы к пулу приложения не обрабатываются, и пользователь получает сообщение об ошибке HTTP 503.

Примечание. Подробная информация о пулах приложений и опциях приведена в «Служба WWW» .

Iis остановка изолированных приложений

Назначение: Windows Server 2008, Windows Server 2008 R2

При открытии служб Диспетчер IIS служба управления не запущена. Необходимо запустить службу управления, если следует задействовать следующие возможности:

    Локальное управление для пользователей, которым разрешено подключаться к сайтам и приложениям.

Удаленное управление для администраторов сервера и пользователей, которым разрешено подключаться к сайтам и приложениям.

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

Примечание
Службу управления в IIS 7 могут настраивать только администраторы сервера, использующие службу Диспетчер IIS на локальном компьютере.

Предварительные требования

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

Исключения из требований

Чтобы запустить или остановить службу управления

Эту процедуру можно выполнить с помощью пользовательского интерфейса или командной строки.

Чтобы использовать пользовательский интерфейс

Откройте Диспетчер IIS. Сведения об открытии Диспетчер IIS см. в разделе Открытие диспетчера IIS (IIS 7).

На панели Подключения щелкните узел сервера в дереве.

В представлении Просмотр возможностей дважды щелкните пункт Служба управления.

На панели Действия страницы Служба управления выполните одну из указанных ниже процедур:

    Выберите пункт Пуск, чтобы запустить службу управления.

Выберите пункт Остановить, чтобы остановить службу управления.

Чтобы использовать окно командной строки

Нажмите кнопку Пуск и выберите команду Выполнить.

В поле Открыть диалогового окна Запуск программы введите одну из указанных ниже команд и нажмите клавишу ВВОД:

    net start wmsvc

Application Pool Identities в IIS

Каждый пул приложений в IIS использует свой собственный рабочий процесс (IIS Worker Process). Удостоверение пула приложений (Application Pool Identities) представляет из себя имя учетной записи, под которой выполняется рабочий процесс этого пула.

В IIS 6.0 и IIS 7.0 пул приложений по умолчанию работал под встроенной системной учетной записью NetworkService. Эта запись не требует пароля и имеет на локальном компьютере ограниченные права, что является хорошей практикой с точки зрения безопасности. Однако под этой учетной записью могут одновременно работать разные системные службы Windows, и при использовании одного и того же идентификатора одни службы могут воздействовать на работу других.

Начиная с Windows Server 2008 SP2 для того, чтобы изолировать рабочие процессы IIS от других системных служб, можно использовать виртуальные учетные записи (Virtual Accounts). Они позволяют запускать рабочий процесс для каждого пула приложений под собственной уникальной учетной записью ApplicationPoolIdentity. Эта учетная запись не требует управления и создается автоматически при создании каждого нового пула. Также она не имеет практически никаких привилегий в системе и не использует профиль пользователя, что повышает безопасность веб-сервера.

Для примера возьмем Application Pool с именем PubSite1. Открываем Task Manager и находим рабочий процесс IIS (w3wp.exe), выполняющийся от имени PubSite1. Как видите, имя учетной записи совпадает с именем пула приложений. Дело в том, что начиная с IIS 7.5 для каждого вновь созданного пула приложений по умолчанию создается виртуальная учетная запись с именем этого пула, и его рабочий процесс запускается из под этой записи.

Настройка типа удостоверения пула приложений

При необходимости тип идентификации пула приложений можно изменить. Для этого запускаем IIS Manager, переходим в раздел Application Pools, выбираем нужный пул и открываем его свойства (Advanced Settings).

В свойствах выбираем пункт Identity.

Здесь мы указываем учетную запись, от имени которой будет работать данный пул приложений:

• ApplicationPoolIdentity — учетная запись удостоверения пула приложений. Создается автоматически при запуске пула приложений и имеет самые минимальные права на локальном компьютере. Это наиболее безопасный вариант, начиная с IIS 7.5 используется по умолчанию;
• LocalService – встроенная учетная запись, которая имеет ограниченные права на локальном компьютере. Примерно то же самое, что и NetworkService, но ограничена только локальным компьютером;
• LocalSystem – системная учетная запись, имеющая неограниченные права на локальном компьютере. Наименее безопасный вариант, по возможности не рекомендуется ее использовать;
• NetworkService — учетная запись, которая имеет ограниченные права на локальном компьютере, а также может использоваться для доступа к ресурсам в сети Active Directory на основании учетной записи компьютера.

Кроме того, в качестве удостоверения можно использовать и обычную учетную запись пользователя. Для этого надо выбрать Custom Account, нажать кнопку Set и ввести имя пользователя и пароль. Можно указать любого доменного или локального пользователя.

Примечание. При использовании учетной записи пользователя надо отслеживать срок действия пароля и своевременно менять его.

То же самое можно сделать с помощью утилиты командной строки appcmd. Чтобы указать учетную запись, которая будет использоваться для пула приложений, используется следующий синтаксис:

appcmd set config /section:applicationpools /[name=″имя пула приложений″].processModel.identityType:SpecificUser|NetworkService|LocalService|LocalSystem

Для примера изменим тип удостоверения для пула приложений PubSite1 на NetworkService:

appcmd set config /section:applicationpools
/[name=″PubSite1″].processModel.identityType:NetworkService

Профиль пользователя

По умолчанию IIS не использует профиль пользователя, но некоторые приложения могут потребовать использование профиля, например для хранения временных файлов. Профиль для учетной записи NetworkService создается системой и всегда доступен. Стандартные пулы приложений (DefaultAppPool, Classic .NET AppPool и т.п.) также имеют профиль пользователя на диске, однако при использовании ApplicationPoolIdentity профиль не создается автоматически.

Если вы хотите настроить ApplicationPoolIdentity на использование пользовательского профиля, то надо зайти в расширенные свойства пула и перевести параметр Load User Profile в состояние True.

Настройка доступа к ресурсам

Иногда веб-приложению может потребоваться доступ к определенной папке или файлу на диске. Чтобы добавить ApplicationPoolIdentity в Access Control List (ACL):

• Запускаем Windows Explorer;
• Выбираем нужный файл или директорию, кликаем по ней правой клавишей мыши и выбираем пункт Свойства (Properties);
• Переходим на вкладку Безопасность (Security),
• Кликаем по кнопке Изменить (Edit), затем Добавить (Add);
• В поле Размещение (Locations) выбираем локальную машину;
• Вводим имя пользователя в виде ″IIS AppPool\имя пула приложений″. Так для пула приложений PubSite1 имя пользователя будет выглядеть ″IIS AppPool\PubSite1″;
• Проверяем имя клавишей Проверить имена (Check Names) и жмем ОК.

Также при желании можно воспользоваться утилитой командной строки ICACLS. Для примера дадим права на изменение для PubSite1:

ICACLS C:\Web\Pubsite1 /grant ″IIS AppPool\PubSite1″:M

Список разрешений выглядит следующим образом:

D – удаление;
F – полный доступ;
M – изменение;
RX – чтение и выполнение;
R – чтение;
W – запись.

Если ресурс находится в сети, то для доступа к нему лучше всего использовать учетную запись NetworkService. Рабочий процесс, запущенный под этим аккаунтом, для доступа к ресурсам использует учетные данные компьютера, сгенерированные при добавлении компьютера в домен. Для того, чтобы дать процессу доступ к сетевому ресурсу, в качестве пользователя указываем компьютер:

• Выбираем тип объекта (Object Type) Computers;
• В поле Размещение (Locations) выбираем домен;
• Вводим имя пользователя в виде domainname\machinename$, например contoso\SRV12$;
• Проверяем имя и жмем ОК.

Очень удобный способ предоставлять доступ к сетевым ресурсам типа файловых шар или баз данных SQL Server. Однако работает он только при наличии домена AD.

Отладка приложения ASP.NET, размещенного на IIS: прикрепление процесса и выяснение, какой процесс прикрепить

Written on 03 Июля 2013 . Posted in ASP.NET

ОГЛАВЛЕНИЕ

Данная статья описывает способ отладки приложения, размещенного на IIS. Здесь также описан способ выбора конкретного процесса для прикрепления к вашему приложению, когда выполняются несколько рабочих процессов

Оглавление

  • Обзор
  • Отладка ASP . NET по сравнению с отладкой IIS
  • Что такое рабочий процесс?
  • Пул приложений
    • Что такое пул приложений?
    • Стандартный пул приложений
    • Создание собственного пула приложений
    • Назначение сайта пулу приложений
  • Как начать?
  • Какой процесс прикрепить?
  • Как прикрепить конкретный рабочий процесс, когда выполняется несколько процессов.
    • Получение списка выполняющихся рабочих процессов
    • Прикрепление нужного процесса
  • Вывод

Обзор

Обычно веб-приложение Asp.Net отлаживается из Visual Studio. Visual Studio имеет собственный механизм ASP.Net, способный запускать и отлаживать веб-сайты внутри visual studio. Но если ваш сайт размещен на IIS, и вы хотите отладить этот сайт, как вы будете его отлаживать? При размещении сайтов на IIS worker process(w3wp.exe) используется для запуска веб-приложения. Надо прикрепить конкретный процесс в Visual Studio, чтобы отлаживать приложение. Данная статья описывает общую идею отладки приложения с помощью прикрепленного процесса. Она также рассматривает рабочий процесс, пул приложений и выбор конкретного процесса, если на IIS выполняется несколько рабочих процессов, с помощью iisapp.vbs. Надеемся, вам понравится эта статья, и вы дадите ценные советы и отзывы.

Отладка ASP.NET по сравнению с отладкой IIS

Visual studio имеет встроенный механизм отладки, отлаживающий код при запуске приложения из Visual Studio. Если при разработке сайтов надо отладить код, ставятся точки останова и производится отладка. [Примечание: В этой статье не описан способ установки режима отладки]. При запуске приложения выполнение кода останавливается, когда приходит определенная точка останова. Это очень просто, поскольку, когда приложение ASP.NET запускается из Visual studio, его контролирует механизм Asp.Net, встроенный в Visual Studio. Если вы хотите проверить, какой процесс запускается для отладки, запустите веб-приложение из Visual Studio и получите такое всплывающее уведомление, как ниже:

Рисунок. Отображение всплывающего уведомления при запуске отладки из Visual Studio

Уведомление показывает, что процесс запускается для выполнения приложения ASP.NET. Дважды щелкните по иконке. Появится всплывающее окно и покажет характеристики.

Рисунок. Характеристики процесса сервера разработки

За выполняющимся процессом находится «WebDev.WebServer.Exe». При нажатии F5 для запуска этот процесс начинает выполнять приложение Asp.Net. Если вы хотите запустить приложение из командной строки, выполните следующие шаги.

Шаги:
1. Открыть командную строку Visual Studio
2. Запустить Webdev.WebServer

Появится следующий экран. Смотрите раздел примеров.

Теперь вернемся к отладке в IIS. IIS появляется при развертывании или размещении сайта на сервере. После развертывания сайтов на IIS, если надо отлаживать сайт из него, нельзя делать это непосредственно в Visual studio. IIS имеет свой собственный рабочий процесс, следящий за выполнением и поддержкой развернутого веб-приложения. Характеристики рабочего процесса описаны в следующем разделе. Поэтому, если мы имеем выполняющийся процесс на IIS, и нам надо отладить приложение, прежде всего надо прикрепить правильный процесс в Visual Studio. Перед разбором способа прикрепления процесса рассмотрим рабочий процесс и пул приложений.

Что такое рабочий процесс?

Рабочий процесс (w3wp.exe) запускает приложение ASP.Net в IIS. Вся функциональность ASP.Net выполняется внутри рабочего процесса. Когда на сервер приходит запрос от клиента, рабочий процесс отвечает за генерацию запроса и ответа. Он также хранит данные сессии InProc. При перезапуске рабочего процесса теряется состояние рабочего процесса. Дополнительную информацию сморите в статье Низкоуровневое рассмотрение архитектуры ASP.NET

Пул приложений

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

Стандартный пул приложений

Имя стандартного приложения IIS 6.0 — «DefaultAppPool». После размещения сайта на IIS при проверке свойств Виртуальной директории вы сможете увидеть, что:
1. Start(пуск) – Run(выполнить) — Inetmgr
2. Развернуть «DefaultWebSites» или Другие веб-сайты, где вы создали Виртуальную директорию
3. Щелкнуть правой кнопкой мыши по Виртуальная директория
4. Щелкнуть по Свойства

Появится следующий экран. Сейчас свойства виртуальной директории показывают имя пула приложений, назначенного выбранному сайту.

Чтобы проверить список всех пулов приложений в IIS, разверните Узел пула приложений на сервере IIS.

Рисунок. Стандартный пул приложений

Теперь все до единого пулы приложений должны иметь минимум один рабочий процесс, следящий за работой сайта, связанного с пулом приложений. Щелкните правой кнопкой мыши по пулу приложений – перейдите во вкладку производительности, проверьте нижнюю часть вкладки, там есть раздел сетевого сада, и по умолчанию рабочий процесс равен 1. Пул приложений, содержащий более одного рабочего процесса, называется Web Garden(сетевой сад).

Создание и назначение пула приложений

Откройте консоль IIS, щелкните правой кнопкой мыши по папке пула приложений > Создать New(новый)

Введите Идентификатор пула приложений и нажмите Ok.

Теперь щелкните правой кнопкой мыши по Виртуальной директории и назначьте только что созданное приложение этой Виртуальной директории.

Итак, эти веб-сайты будут запускаться независимо в StateServerAppPool. Следовательно, любая проблема, связанная с другим приложением, не влияет на ваше приложение. Это основные преимущества создания пула приложений отдельно.

Как начать?

Все сказанное до сих пор уже дает вам хорошее представление о рабочем процессе и пуле приложений. Вы должны понять их, прежде чем начинать следующую часть. Теперь покажем способ отладки сайта, размещенного на сервере IIS.

Был создан один веб-сайт под именем sampleWebSite и размещен на локальном IIS. Ниже показан вывод страницы по умолчанию.

Рисунок. Пример веб-сайта

Какой процесс прикрепить?

Как уже было сказано, имя процесса — w3wp.exe, следовательно, можно проверить его из менеджера задач, выполняется рабочий процесс или нет

Рисунок. Менеджер задач показывает выполняющийся процесс

Теперь прикрепим процесс. Перейдите в Отладка > Прикрепиться к процессу

Рисунок. Открыть окно прикрепления процесса

После нажатия на Прикрепиться к процессу появится следующий экран,

Рисунок. Выполняется один рабочий процесс

Теперь видно, что выполняется тот же самый рабочий процесс. Надо прикрепить этот процесс. Выберите «Процесс» и нажмите кнопку «Прикрепить». После проверки двух рисунков ниже

Рисунок: 1) Процесс успешно прикреплен 2) Процесс не прикреплен

Заметили ли вы знак точки останова? Если рабочий процесс прикрепился успешно, знак точки останова выполнения кода должен быть четким, в противном случае он должен иметь предупреждающую иконку. Для одного рабочего процесса сценарий не свойствен. Но если на IIS выполняется несколько рабочих процессов, возникает беспорядок. Это рассмотрено в следующем разделе.

Теперь при нажатии на кнопку отладки веб-страницы выполнение кода остановится в точке останова.

Теперь рассмотрим случай, когда выполняется несколько рабочих процессов

Как прикрепить конкретный рабочий процесс, когда выполняется несколько процессов?

Когда произойдет этот сценарий? Если несколько сайтов размещены на IIS, и эти сайты имеют там собственный пул приложений. Теперь несколько пулов приложений означают, что выполняется несколько рабочих процессов.

Мы имеем 3 пула приложений в IIS:
• Стандартный пул приложений
• Обобщенный пул приложений
• Пул приложений сервера состояний

Сейчас SampleWebSite связан с defaultAppPool, и мы хотим прикрепить процесс для отладки SampleWebSite. Выполните такой же шаг для открытия окон прикрепления процесса

Рисунок. Список рабочих процессов

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

Рисунок. Процесс не прикрепился правильно

Получение списка выполняющихся рабочих процессов

Ниже даны советы по решению указанной проблемы.
• Пуск > Выполнить > Cmd
• Перейти в Windows > System32
• Выполнить cscript iisapp.vbs и ждать вывода.

Вы получите список выполняющихся рабочих процессов, PID(идентификаторов процессов) и имя пула приложений.

Рисунок. Список выполняющихся рабочих процессов с PID и именем пула приложений

Прикрепление правильного процесса

Отсюда вы можете легко определить имя пула приложений и идентификатор процесса. Снова вернемся в VS > Прикрепить процесс. Теперь вы знаете, что идентификатор процесса для стандартного пула приложений равен 1772, следовательно, Прикрепить процесс.

Рисунок. Прикрепить процесс для отладки

Теперь наслаждайтесь отладкой.

Рисунок. Точка останова готова

Вывод

Иногда приходится отлаживать приложение, размещенное на IIS. Для этого надо прикрепить выполняющийся рабочий процесс к коду Visual Studio. Если на сервере IIS выполняется несколько рабочих процессов, мы можем определить правильный рабочий процесс с помощью команды cscript iisapp.vbs. Надеемся, статья поможет новичкам, испытывающим затруднения с отладкой приложения, размещенного на IIS.

При копировании материалов наличие активной индексируемой ссылки на сайт обязательно.

Настройка IIS

Веб-сервер IIS, как среда выполнения веб-приложения, имеет некоторое влияние на общую производительность. Например, чем короче конвейер обработки запросов в IIS, тем меньше кода будет выполняться и тем выше будет скорость работы. В IIS имеются механизмы, которые можно использовать для увеличения производительности приложения за счет снижения задержек и увеличения пропускной способности, а также некоторые механизмы, которые при правильной настройке могут увеличить общую производительность приложения.

Кэширование вывода

Мы уже знаем, что ASP.NET поддерживает собственный механизм кеширования вывода, зачем же использовать еще один подобный механизм в IIS? Ответ на этот вопрос прост: помимо страниц ASP.NET существуют и другие виды содержимого, которое можно кешировать. Например, мы можем кешировать часто запрашиваемые статические файлы изображений или вывод собственных обработчиков HTTP-запросов. Для этой цели как раз и можно использовать механизм кеширования, поддерживаемый веб-сервером IIS.

В IIS имеется два механизма кеширования: кеш в пространстве пользователя и кеш в пространстве ядра.

Кеширование в пространстве пользователя

Так же как ASP.NET, веб-сервер IIS способен кешировать ответы в памяти, чтобы ответы на последующие запросы могли отправляться из кеша в памяти, без обращения к статическим файлам на диске и без вызова программного кода на стороне сервера.

Чтобы настроить кеширование, откройте приложение IIS Manager, выберите свое веб-приложение, откройте настройку Output Caching (Кеширование вывода), щелкните на ссылке Add (Добавить) в панели Actions (Действия), чтобы добавить новое правило кеширования, или выберите существующее правило для редактирования.

Чтобы создать новое правило кеширования в пространстве пользователя, добавьте новое правило, введите расширение имен файлов, которые требуется кешировать, и отметьте флажок User-mode caching (Кеширование в режиме пользователя) в диалоге Add Cache Rule (Добавить правило кеширования), как показано на рисунке ниже:

Отметив флажок, вы получите возможность выбирать, когда кешированный элемент будет удаляться из памяти, после обновления файла на диске или спустя некоторое время с момента кеширования. Для статических файлов больше подходит вариант удаления после обновления, тогда как определение интервала времени больше подходит для динамического содержимого. Щелкнув на кнопке Advanced (Дополнительно) можно получить доступ к настройкам, управляющим кешированием различных версий вывода (согласно параметрам в строке запроса или HTTP-заголовкам).

После добавления правила кеширования, настройки сохраняются в файле web.config приложения, в разделе system.webServer caching. Например, для правила кеширования страниц .aspx на срок до 30 минут, с учетом HTTP-заголовка Accept-Language, будет сгенерирован следующий код в конфигурационном файле:

Кеширование в пространстве ядра

В отличие от механизма кеширования в пространстве пользователя, сохраняющего информацию в памяти рабочего процесса IIS, механизм кеширования в пространстве ядра сохраняет информацию в памяти драйвера HTTP.sys. Кеширование в пространстве ядра обеспечивает более короткое время отклика, однако оно поддерживается не всегда. Например, кеширование в пространстве ядра нельзя использовать, когда запрос содержит строку с параметрами запроса или когда запрос не является анонимным запросом.

Настройка правил кеширования в пространстве ядра выполняется почти так же, как кеширование в пространстве пользователя. В диалоге настройки правила установите флажок Kernel-mode caching (Кеширование в режиме ядра) и выберите желаемый способ кеширования.

В одном правиле допускается использовать оба режима кеширования, в пространстве ядра и в пространстве пользователя. В этом случае IIS будет сначала пытаться применить кеширование в пространстве ядра. Если попытка не увенчается успехом, например, когда запрос содержит строку с параметрами, применяется кеширование в пространстве пользователя.

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

Настройка пула приложения

Параметры настройки пула приложения определяют, как IIS будет создавать и поддерживать рабочие процессы, в рамках которых будет выполняться наш код. В ходе установки IIS и ASP.NET создается несколько пулов приложений, в зависимости от установленной версии .NET, к которым вы можете добавлять новые пулы, по мере развертывания дополнительных веб-приложений. При создании пула приложения, он получает некоторые параметры настройки со значениями по умолчанию, управляющие его поведением. Например, каждый пул получает тайм-аут простоя, после которого этот пул приложения останавливается.

Понимание значения некоторых из этих настроек может помочь вам настроить работу пула и тем самым более полно удовлетворить потребности приложения.

Перезапуск

Изменяя параметр настройки перезапуска можно управлять моментом, когда пул приложения будет перезапускать рабочий процесс. Например, можно организовать перезапуск рабочего процесса через каждые несколько часов или когда будет превышен некоторый предел занимаемой памяти. Если с течением времени веб-приложение начинает потреблять большие объемы памяти (например, для хранения объектов), увеличение количества перезапусков может помочь удерживать его производительность на высоком уровне. С другой стороны, если веб-приложение не проявляет никаких проблем в процессе работы, уменьшение количества перезапусков предотвратит потерю информации о состоянии.

Для проверки количества и частоты перезапусков пула приложения можно использовать счетчик производительности ASP.NET\Worker Process Restarts. Если вы увидите слишком большое количество перезапусков без явной на то причины, попробуйте сопоставить полученные значения с потреблением памяти приложением и нагрузкой на процессор, потому что перезапуски могут быть обусловлены превышением других пределов, определяемых настройками пула приложения.

Тайм-аут простоя

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

Привязка процессов к ядрам процессора

По умолчанию пул приложения настроен так, что может использовать все доступные ядра процессора. Если у вас имеется какой-либо специализированный фоновый процесс, использующий все процессорное время, какое ему будет выделено, можете настроить привязку пула к определенным ядрам, освободив остальные для фонового процесса. Разумеется, при этом также потребуется настроить привязку фонового процесса к другим ядрам процессора, чтобы избежать конкуренции между ним и рабочим процессом за одни и те же ядра.

Веб-сад

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

Например, если приложение использует патентованный механизм кеширования с блокировками, препятствующими одновременному добавлению элементов в кеш, при обработке запросов потребуется синхронизировать операции с ними, что приведет к задержкам, которые непросто будет выявить и устранить. Иногда можно исправить код, чтобы уменьшить использование блокировок, но такая возможность существует не всегда. Другой способ устранения конкуренции за ресурсы — запустить несколько рабочих процессов, выполняющих одно и то же приложение, каждый из которых обрабатывает собственное подмножество запросов, устраняя тем самым ненужную конкуренцию.

Другим примером, когда может пригодиться наличие нескольких процессов, выполняющих одно и то же веб-приложение — использование 64-разрядного сервера IIS, выполняющего 32-разрядное веб-приложение. 64-разрядные серверы обычно имеют большой объем памяти, а 32-разрядное приложение может использовать не более 2 Гбайт, что часто приводит к увеличению частоты сборки мусора и, вероятно, к перезапускам пула приложения. Поддерживая два или три рабочих процесса для 32-разрядного веб-приложения, можно добиться более полного использования памяти сервера, уменьшить частоту сборки мусора и перезапусков пула приложения.

В настройках IIS пула приложения можно определить максимальное количество рабочих процессов, которое можно запустить для обслуживания запросов. Если установить этот параметр в значение больше 1 (значение по умолчанию), с ростом нагрузки на веб-приложение для него будут запускаться дополнительные рабочие процессы, вплоть до указанного максимума. Пул приложения, имеющий более одного процесса, называется «веб-садом» («Web Garden»). Каждый раз, когда устанавливается соединение с клиентом, оно связывается с рабочим процессом, который будет обслуживать запросы от этого клиента, при этом соблюдается равномерное распределение запросов от пользователей между процессами и уменьшаются накладные расходы на конкуренцию.

Имейте в виду, что использование веб-сада имеет и недостатки. Большее количество рабочих процессов занимает больший объем памяти, исключается возможность использовать механизм по умолчанию хранения информации о сеансе в памяти процесса, при выполнении нескольких рабочих на одном компьютере, между ними может возникать конкуренция за локальные ресурсы, например, за использование общего файла журнала.

Iis остановка изолированных приложений

Назначение: Windows Server 2008, Windows Server 2008 R2

При открытии служб Диспетчер IIS служба управления не запущена. Необходимо запустить службу управления, если следует задействовать следующие возможности:

    Локальное управление для пользователей, которым разрешено подключаться к сайтам и приложениям.

Удаленное управление для администраторов сервера и пользователей, которым разрешено подключаться к сайтам и приложениям.

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

Примечание
Службу управления в IIS 7 могут настраивать только администраторы сервера, использующие службу Диспетчер IIS на локальном компьютере.

Предварительные требования

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

Исключения из требований

Чтобы запустить или остановить службу управления

Эту процедуру можно выполнить с помощью пользовательского интерфейса или командной строки.

Чтобы использовать пользовательский интерфейс

Откройте Диспетчер IIS. Сведения об открытии Диспетчер IIS см. в разделе Открытие диспетчера IIS (IIS 7).

На панели Подключения щелкните узел сервера в дереве.

В представлении Просмотр возможностей дважды щелкните пункт Служба управления.

На панели Действия страницы Служба управления выполните одну из указанных ниже процедур:

    Выберите пункт Пуск, чтобы запустить службу управления.

Выберите пункт Остановить, чтобы остановить службу управления.

Чтобы использовать окно командной строки

Нажмите кнопку Пуск и выберите команду Выполнить.

В поле Открыть диалогового окна Запуск программы введите одну из указанных ниже команд и нажмите клавишу ВВОД:

    net start wmsvc

Илон Маск рекомендует:  Работа со стандартными ресурсами
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL