Адаптер прослушивателя net pipe что это

Адаптер прослушивателя net pipe что это

Про столь важный компонент IIS’a WAS (Windows Process Activation Service) в рунете написано… Да мало что написано! 🙂 , есть только статья на Хабре про конвейер запросов в IIS, где WAS таки была затронут. Поэтому пришлось в основном собирать информацию с англоязычных сайтов. WAS появился в IIS 7 и был призван обеспечить управление, защиту от сбоев, мониторинг работы приложений, работающих не только по HTTP. Итак, что же делает служба, называемая в русском переводе «Служба активации Windows»?

Глобальная архитектура WAS

На сайте Microsoft можно найти описание общей архитектуры WAS.

Выделяются следующие компоненты:

  1. Адаптеры прослушивателей
  2. Собственно WAS
  3. Процессы W3WP
  4. Менеджер приложений
  5. Хендлеры протоколов

Адаптеры прослушивателей принимают пришедший на сервер запрос, затем обращаются к WAS, чтобы тот марштутизировал пришедший запрос в нужное приложение. Среди них необходимо выделить следующие адаптеры: W3SVC (запросы HTTP), NetTcpActivator (транспорт TCP), NetPipeActivator (транспорт именованных каналов), NetMsmqActivator (транспорт очереди MSMQ).

Менеджер приложений управляет пулами приложений.

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

Далее мы будем рассматривать непосредственно WAS (пункт 2).

Чем занимается WAS?

WAS при получении запроса IIS’ом способен активировать рабочий процесс (on-demand activation). В течение жизни процесса WAS посылает ему специальные сообщения (health messages), на которые ожидает ответ. Если процесс за определенное время не отвечает, то WAS считает, что с процессом что-то не так и рестартует его или просто останавливает. Например, процесс может перестать отвечать на запросы WAS в результате возникшего дедлока, который без рестарта процесса было бы не разрешить.

Начиная с седьмой версии в IIS встроена система защиты от частых сбоев (Rapid Fail Protection). Для каждого пула приложений ее можно настроить отдельно. Возьмем пул приложений ASP.NET v4.0 и посмотрим соответствующие настройки.

Как видно на рисунке слева, в дополнительных параметрах аппула есть раздел защиты от частых сбоев. В нем есть три главных параметра — состояние, интервал сбоев в минутах и максимум сбоев. Если защита включена, то пул приложений начинает следить за количеством ошибок, произошедших за интервал, указанных в этих настройках. Если их количество превысило заданный порог, пул приложений останавливается. Так, например, если приложение при старте не отвечает WAS в течение определенного времени (раздел «Модель процесса», параметр «Предельное время запуска» тех же настроек), то WAS имеет полное право «убить» процесс, а счетчик сбоев пула приложений увеличивается на один. То же самое касается и времени завершения процесса. Сразу после этого идет запись в логи Windows.

WAS следит за тем, какие ресурсы выделены процессу и как он их использует, например, лимитирует использование процессом CPU.

Также WAS создает для каждого пула приложений уникальный SID, который выглядит как «учетная запись», при помощи которой пул приложений, например, может читать свои настройки, к которым имеет доступ еще и администратор сервера (больше никто из пользователей компьютера). Это сделано для изоляции пулов приложений друг от друга. В реальности никаких дополнительных учетных записей на компьютере, под которыми мог бы зайти человек, не создается 🙂 . Настройки пула приложений создаются «на лету» при его старте и размещаются тут %systemdrive%inetpub empappPools.

Читайте также:  Как выглядят деньги на сканере в аэропорту

На рисунке слева видно, кто может читать настройки пула приложений ASP.NET v4.0. Как видно, учетная запись ASP.NET v4.0 в наличии :-). Маленькая консольная программа Application Pool SID поможет увидеть Вам SID’ы Ваших пулов приложений, которую можно скачать в виде zip-архива. Внимание, она требует административных прав, так как для ее работы необходим доступ к файлу redirection.config, а также .NET не ниже 2.0.

Исходники ее — никакой не секрет 🙂 , также выкладываю их в виде архива.

Как убедиться, что WAS есть и служба работает

Чтобы проверить, запущен ли WAS на конкретной машине, достаточно набрать открыть окно «Выполнить», в нем набрать команду cmd, откроется окно консоли, в которой надо набрать комманду sc query was . Если все хорошо, будет примерно такой ответ:

Если служба остановлена, то ответ будет примерно таким:

Чтобы остановить службу WAS, в консоли cmd, запущенной под правами администратора (. ), надо набрать команду net stop was и согласиться с остановкой службы. Чтобы обратно запустить — net start was.

Если хочется увидеть все это в графическом режиме, то тогда набираем в окне «Выполнить» команду services.msc. Перед нами открывается окно сервисов Widows (рис. ниже).

Здесь нас интересует служба под названием «Служба активации Windows». Как видно, стартует она под системной учетной записью по умолчанию. Среди зависимостей у данной службы указывается компонент удаленного вызова процедур RPC.

Архитектура WAS

WAS архитектурно можно разделить на три части:

  1. Менеджер конфигурации
  2. Менеджер процессов
  3. Интерфейс адаптера прослушивателя

Рассмотрим каждую часть более подробно.

Менеджер конфигурации

При помощи менеджера конфигурации WAS обращается к конфигурационному файлу applicationhost.config, расположенному по адресу %windir%system32inetsrvconfig, считывает оттуда информацию. В этом файле собраны настройки IIS, отдельных пулов приложений, включая и аутентификационную информацию (да, пароль зашифрован алгоритмом AES, судя по данным схемы IIS_schema.xml, расположенной в подпапке schema), информация по отдельным прослушивателям, по приложениям, имеющимся привязкам, модулям и т.д. Подробное описание этого файла, пожалуй, тема для отдельной статьи 🙂

Далее в свете обработки запроса, пришедшего на IIS, рассмотрим две оставшиеся части.

Менеджер процессов

Инициализацией нового рабочего процесса W3WP занимается менеджер процессов. WAS загружает в рабочий процесс хост приложения, в который уже средствами ASP.NET подгружается CLR. В рабочий процесс WAS подгружает обработчики протоколов процессов (PPH). Далее менеджер приложения ASP.NET создает необходимые домены приложений, загружает в них рабочий код, затем подгружает обработчики протоколов уровня приложения (ADPH).

Читайте также:  Как установить правильное время в одноклассниках

Интерфейс адаптера прослушивателя

Интерфейс адаптера прослушивателя служит для обработки WAS’ом не-HTTP/HTTPS запросов.

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

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

После произведенных настроек адаптер переходит к процессу прослушивания траффика. По мере прихода сообщений процесс прослушивателя строит «таблицу маршрутизации», которая позволяет связать ID канала прослушивателя и входящие запросы.

Прослушиватель считывает пришедшие байты на сокет. Н а данном этапе его интересует больше всего информация, которая позволит опеределить, куда дальше посылать пришедшее 🙂 . Для этого он разбирает URL запроса, просматривает свои настройки на предмет совпадения этого URL и адреса одной из служб. Если таковая найдена, то из настроек вытягивается ID канала прослушивателя. Затем процесс прослушивателя вызывает определенный метод интерфейса адаптера прослушивателя WAS (WebhostOpenListenerChannelInstance), который заставляет уже рассмотренный менеджер процессов инициировать новый рабочий процесс W3WP. В число параметров данного метода входит ID канала прослушивателя, байтовый массив данных, полученных адаптером, ID пула приложений, куда отправлять запрос, а также хендл протокола.

Когда созданный внутри рабочего процесса хост приложения получает от WAS запрос на поднятие нового канала прослушивания в виде вызываемого метода StartProcessProtocolListenerChannel , он обращается к тому же WAS за настройками, а именно за ключом протокола (например, net.tcp), затем пытается его «распознать». Когда ему это удалось, он в основном домене приложения вызывает метод StartListenerChannel. Данный метод принимает два параметра и они оба — интерфейсы! 🙂 Первый из них имеет тип IListenerChannelCallback — обратный вызов для канала прослушивателя, второй IAdphManager — диспетчер обработчика домена приложений. Уже загруженный в процесс PPH (см. менеджер процессов) запрашивает у WAS массив данных, который тот заботливо сохранил в момент создания рабочего процесса после вызова метода WebhostOpenListenerChannelInstance. Поскольку куда отправлять данные уже давно известно, то этот массив данных отправляется в нужное приложение.

Итак, как видно, тема не маленькая, вполне возможно, что в каких-нибудь последующих статьях я продолжу рассмотрение WAS.

Подпишитесь на обновления блога!

Благодарю! Вы успешно подписались на новые материалы блога!

Применимо к: да да да нет SharePoint Online APPLIES TO: 2013 2016 2019 SharePoint Online

Имя правила: "Адаптер прослушивателя Net.Pipe недоступен". Rule Name: The Net.Pipe Listener Adapter isn’t available.

Сводка. Адаптер прослушивателя Net.Pipe — это служба Windows, которая получает запросы на активацию по протоколу net.pipe и передает их Службе активации Windows. Summary: The Net.Pipe Listener Adapter is a Windows service that receives activation requests over the net.pipe protocol and passes them to the Windows Process Activation Service.

Читайте также:  Как настроить телефон зте после сброса настроек

Причина. Если служба адаптера прослушивателя Net.Pipe не установлена или не запущена, правило анализатора работоспособности SharePoint вызывает оповещение. Cause: If the Net.Pipe Listener Adapter service is not installed or started then the SharePoint Health Analyzer rule triggers an alert.

Решение. Запустите службу адаптера прослушивателя Net.Pipe на сервере Resolution: Start the Net.Pipe Listener Adapter service on the server

Убедитесь, что учетная запись пользователя, с помощью которой выполняется данная процедура, является участником группы администраторов фермы. Verify that the user account that is performing this procedure is a member of the Farm Administrators group.

В диспетчере серверов последовательно выберите элементы Средства и Службы. In Server Manager, click Tools, and then click Services.

Зарегистрируйтесь, чтоб продолжить пользоваться всеми функциями Techfeed

Популярные теги

У меня есть две службы WCF, размещенные в одной службе Windows на компьютере с Windows Server 2003. Если службе Windows требуется доступ к любой из служб WCF (например, при возникновении события по времени), она использует одну из пяти открытых конечных точек именованных каналов (разные контракты на обслуживание). Служба также предоставляет конечные точки HTTP MetadataExchange для каждой из двух служб и конечные точки net.tcp для потребителей, внешних по отношению к серверу.

Обычно все работает отлично, но время от времени я получаю сообщение об ошибке, которое выглядит примерно так:

System.ServiceModel.EndpointNotFoundException: не было конечной точки, прослушивающей net.pipe: // localhost / IPDailyProcessing, которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Смотрите InnerException, если имеется, для более подробной информации. —> System.IO.PipeException: конечная точка канала ‘net.pipe: // локальный / IPDailyProcessing» не может быть найден на вашей локальной машине. — Конец внутренней трассировки стека исключений — Трассировка стека сервера: в System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName (Uri uri) в System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool.GetPoolKress через точку доступа, конечная точка (точка доступа) System.ServiceModel.Channels.ConnectionPoolHelper. OnOpen (тайм-аут TimeSpan) в System.ServiceModel.Channels.CommunicationObject.Open (тайм-аут TimeSpan) в System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICall SystemChannel, timeCall SystemChannel TimeCan. .ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (тайм-аут TimeSpan, CallOnceManager каскад) в System.ServiceModel.Channels.ServiceChannel. EnsureOpened (TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call (String action, Boolean oneway, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call ( action, Boolean oneway, операция ProxyOperationRuntime, Object [] ins, Object [] outs) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (операция IMethodCallMessageCall, ProxyOperationRuntime) в System.ServiceModel.ChannelProage (сообщения IMCage) (

Это нене может произойти надежно, что сводит с ума, потому что я не могуне повторяю, когда захочу. В моей службе Windows у меня также есть некоторые синхронизированные события и прослушиватели файлов, но это довольно редкие события. У кого-нибудь есть идеи, почему я могу столкнуться с проблемой? Любая помощь будет принята с благодарностью.

Ссылка на основную публикацию
Touchpal bengali pack что это
Главным инструментом для ввода текстовой информации на ПК считается клавиатура. Для мобильных устройств аналогом возможно считать приложение TouchPal. Многие могут...
Kingston scsi disk device
SCSI (англ. Small Computer System Interface , произносится «скази» [1] [2] (встречается вариант эс-си-эс-ай)) — представляет собой набор стандартов для...
Logitech options не видит мышь
ОДНО ПРИЛОЖЕНИЕ. ПОЛНОЕ УПРАВЛЕНИЕ УСТРОЙСТВАМИ. Logitech G HUB ОПТИМАЛЬНАЯ СРЕДА ПОДДЕРЖКИ ПО Logitech G HUB представляет собой единый центр управления,...
Usb vid 534d pid 0021 mi 00
1. Скачайте необходимый файл. Розархивируйте его в какую-нибудь директорию. 2. В диспетчере устройств выберите устройство, которое требует установки/обновления драйвера. 3....
Adblock detector