Nettcpactivator что это за служба
Перейти к содержимому

Nettcpactivator что это за служба

  • автор:

Nettcpactivator для чего он нужен

Применимо к: да да да нет 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.

Я использую протокол net.tcp для различных веб-сервисов. Когда я перезагружу свой MacBook Pro для Windows 7 Ultimate (64-разрядный), служба никогда не перезапускается автоматически, даже если это так, как они установлены:

Error 6/9/2011 19:47 Service Control Manager 7000 None The Net.Tcp Port Sharing Service service failed to start due to the following error: The service did not respond to the start or control request in a timely fashion."

Error 6/9/2011 19:47 Service Control Manager 7009 None
A timeout was reached (30000 milliseconds) while waiting for the Net.Tcp Port Sharing Service service to connect.

Этот пост предполагает, что это что-то еще , блокирующее порт (в сообщении это SCCM 2007 R3 Client , которые я не использую).

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

Служба обмена портами Net.Tcp

АдаптерпрослушивателяNet.Tcp

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

В моем текущем проекте мы (я имею в виду "команда проекта" ) используют службы WCF, размещенные в IIS.

Вот некоторые технические детали, которые могут быть важны:

  • Мы используем NET 3.5 для служб WCF
  • Мы используем протокол связи NET.TCP
  • Мы используем IIS 7 и IIS 7.5 для размещения этих служб.
  • Мы используем несколько рабочих процессов IIS на каждом сервере.

Итак, проблема в том, что иногда WCF-сервисы становятся недоступными. Когда мы пытаемся достичь этих WCF-сервисов, мы получаем ошибку тайм-аута. И единственным способом восстановления работы WCF-сервиса является перезапуск службы Windows NetTcpActivator (Net.Tcp Listener Adapter).

Согласно моей теории коллег, эта ошибка может быть связана с проблемами, описанными в этой статье в KB:

ИСПРАВЛЕНИЕ: Smsvchost.exe для службы WCF перестает отвечать при запуске службы WCF на основе .NET Framework 4 http://support.microsoft.com/kb/2536618 p >

В соответствии с этой статьей, SMSvcHost (контейнерная служба, в которой размещаются NetTcpActivator и служба совместного доступа к портам) зависает, если она не может перенаправить запрос на w3wp (рабочий процесс IIS) более чем за 60 секунд (неконфигурируемый таймаут). К сожалению, мы не можем найти способ воспроизвести эту ошибку. Например, мы ограничили SMSvcHost до 1 ядра процессора и 1 поток, а расширенные ожидающие подключения ограничили 1M и нажали на 100% загрузку процессора в пользовательском режиме. И это не зависало!

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

Кроме того, я хотел бы сказать, что это не новая проблема. Мои коллеги уже получили это 3 года назад (см. Эту тему для дополнительной информации http://forums.iis.net/t/1167668.aspx/1/10). И, к сожалению, они не получили ответа. Проблема исчезла после некоторых изменений конфигурации! И теперь он вернулся на новый сервер.

Я буду очень благодарен всем вам за мысли и идеи!

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

В нашем случае все планеты должны были выровняться. У нас был один интегрированный пул приложений .NET 4 для клиента и сервера (на машине разработчика). Служба использовала внешний файл конфигурации для привязок (), который был связан с другим проектом и скопирован во время сборки с заданием пользовательской сборки, добавленным в службу .csproj.

Чтобы воспроизвести проблему:

  • Остановите все запущенные службы SMSvcHost (Net.Tcp *, Net.Pipe, Net.Msmq). Перезапуск не будет работать, поскольку процесс SMSvcHost не исчезнет.
  • В Visual Studio запустите средство очистки для WcfService
  • Из проводника Windows удалите serviceModel.bindings.config в WcfService
  • Запустите iisreset (избавляется от w3wp и запускает службы SMSvcHost — нажмите F5 — список служб, чтобы увидеть это)
  • Сборка WcfService (копирует связанный файл конфигурации)
  • Перейдите на страницу WcfClient, отправьте дважды. Если вы каждый раз получаете сообщение об ошибке, у вас, вероятно, проблема. В нашем основном приложении он предоставлял тайм-аут в тестовом приложении CommunicationObjectFaultedException вместо таймаута, но все в порядке.
  • Остановить службы SMSvcHost. Если возникла ошибка, в журнале событий системы регистрируется событие 8 для SMSvcHost.

Я еще не знаю, является ли виновником w3wp или SMSvcHost. Шаг №3 имеет решающее значение, хотя пока не могу объяснить, почему. Если вы не удалите файл, все будет в порядке. Если вы измените файл (дата создания остается неизменной), все в порядке. Если вы переместите XML-конфигурацию в основной файл Web.config, все будет в порядке. Когда задача сборки копирует файл, обновленная дата обновляется, поэтому я предполагаю, что он кэширован каким-то образом, и один из процессов обнаруживает изменение даты.

Если вы перезапустите службы SMSvcHost (полная остановка, полный старт) один или два раза, клиентский запрос пройдет, и с этого момента вы все равно.

Итак, теперь я предполагаю, что это может быть проблемой сразу после развертывания, но если вы убедитесь, что все работает (и при необходимости перезапустите службы), то все должно быть в порядке. Вы также не можете выполнять внешние/связанные файлы.

Как только Microsoft отменит эту проблему, я надеюсь, у вас будет больше понимания.

Окончательное обновление Я забыл вернуться к этому раньше. Microsoft по сути признала, что у них, вероятно, была ошибка, но поскольку было обходное решение и потратил достаточно времени на билет, они закрывали его, а не изучали дальше. Кажется, что какой-то тип расы, когда SMSvcHost запускается со следующей установкой (аналогично тому, что я опубликовал ранее):

  • Host WCF в IIS
  • Используйте привязку не к HTTP, чтобы вставлять SMSvcHost
  • Используйте внешний файл конфигурации для привязок с помощью configSource

Связывание внешней конфигурации не имело к этому никакого отношения. Обходной путь состоял в том, чтобы не использовать configSource , который мы делаем сейчас.

Nettcpactivator что это за служба

Сообщения: 8
Благодарности: 0

Пока сидел на винде 7 было всё идеально, только пересел на 10ку начались проблемы. То у меня комп намертво виснет, помогает только рестарт — проблема Kernel Power 41 (63), но она случалась только при долгой работе и большом количестве открытых видео на ютубе. Недавно решил почистить пк. Всё собрал, проверил всё на 3 раза, никаких косяков нету. Начал выключаться комп, сначала гаснет монитор, потом спокойно выключается и не резко, а последовательно как при обычном завершении работы, сначала девайсы, потом само железо. Температуры вроде в норме, в журнале событий было найдено следующее:
1) Произошла устраненная аппаратная ошибка.

Сообщивший компонент: ядро процессора
Источник ошибки: Исправленная ошибка проверки компьютера
Тип ошибки: Ошибка иерархии кэша
ИД APIC процессора: 1

2)Регистрация сервера <21F282D1-A881-49E1-9A3A-26E44E39B86C>DCOM не выполнена за отведенное время ожидания.

3)Служба "NetTcpActivator" является зависимой от службы "NetTcpPortSharing", которую не удалось запустить из-за ошибки
Указанная служба не может быть запущена, так как отключена либо она сама, либо все связанные с ней устройства.

4)Служба "NcaSvc" является зависимой от службы "iphlpsvc", которую не удалось запустить из-за ошибки
Не удалось запустить дочернюю службу.

5)Служба "iphlpsvc" является зависимой от службы "WinHttpAutoProxySvc", которую не удалось запустить из-за ошибки
Указанная служба не может быть запущена, так как отключена либо она сама, либо все связанные с ней устройства.

6)Provisioning turn ‘5’ failed with ‘0x80070002’.

7)Ошибка при изменении состояния на SECURITY_PRODUCT_STATE_OFF (ошибка 02000000).

8)Сеанс "ReadyBoot" остановлен из-за следующей ошибки: 0xC0000188

9)Достигнут максимальный размер файла для сеанса "ReadyBoot". По этой причине события в файле "C:\WINDOWS\Prefetch\ReadyBoot\ReadyBoot.etl" могут быть утеряны (не зарегистрированы). На данный момент максимальный размер файла составляет 20971520 (в байтах).

Система:
AMD FX-6300 -процессор
ASUS M5A97 R2.0 — мать
PowerColor Radeon HD6790 — видеокарта
hitachi hua722020ala330 2TB — жёсткий диск
Qori 450w — блок питания
2 плашки памяти по 4гб ddr3, как я понимаю ноунейм с чипами hynix

Чекнул систему sfc /scannow — ошибок не обнаружено
Проверял оперативку — ошибок не обнаружено
Прогонял ядра процессора — ошибок не обнаружено
Система постоянно чистится asc, дрова все новые, дефрагментация hdd стабильно раз в 2 недели
Уже не знаю что делать, нужна помощь.

Основы архитектуры IIS, или запросопровод для ASP.NET

В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.

1. Общий план
2. Крупный план
2.1. HTTP.SYS
2.2. World Wide Web Publishing Service (W3SVC)
2.3. Windows Process Activation Service (WAS)
2.4. Пул приложений
2.5. Домен приложения, приложение
3. Что дальше?
Источники

1. Общий план

Итак, начнём с конца, а потом рассмотрим отдельные аспекты чуть более пристально.
В англоязычной литературе процесс обработки запроса в IIS называется «request processing pipeline» — что-то вроде «конвейера обработки запроса». В общих чертах он представлен на рисунке ниже для http-запроса.


Рис. 1. HTTP request processing pipeline (IIS 7.x).

Таким образом, http-запрос проходит по «сборочной ленте конвейера» через следующее:

1. Браузер обращается к веб-серверу по определённому URL, на стороне сервера запрос перехватывает драйвер HTTP.SYS.
2. HTTP.SYS стучится к WAS для получения информации из хранилища конфигурации.
3. Служба WAS запрашивает конфигурацию из хранилища — из файла в папке IIS (applicationHost.config).
4. Поскольку данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она же WWW Service на картинке), эта информация содержит в себе данные о пуле приложений (application pool) и прочих параметрах сайта.
5. Служба W3SVC использует эту информацию для кофигурации HTTP.SYS.
6. Служба WAS запускает процесс W3WP.exe для пула приложений, если он ещё не был запущен.
7. В процессе W3WP.exe работает приложение веб-сайта, которое, собственно, формирует и возвращает ответ драйверу HTTP.SYS.
8. HTTP.SYS отправляет ответ браузеру.

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

2. Крупный план
2.1. HTTP.SYS

На транспортном уровне IIS использует прослушивателей протоколов (protocol listeners), которые располагаются поверх стека TCP/IP. Наиболее интересный нам такой компонент – это системный драйвер HTTP.sys, который встроен в ядро ОС и работает с протоколами HTTP и HTTPS, регистрирующийся самостоятельно на прослушку всех портов, на которые будут приходить запросы к сайтам в IIS.

Встроенный в ядро HTTP.sys стал нововведением в IIS 6, заместив собой Windows Socket API – компонент перехвата HTTP- и HTTPS-запросов на пользовательском уровне в IIS более ранних версий. Вероятно, интеграция драйвера в ядро является той самой причиной, по которой версия IIS жёстко привязана к версии Windows.

Драйвер принимает все входящие запросы и перенаправляет их в нужный пул приложений. Если по какой-то причине рабочий процесс, в коем хостится требуемый пул, остановлен (сбой, таймаут простоя, смена конфигурации и т.п.) или ещё запускается, то HTTP.sys сохраняет входящие запросы в специально отведённой для каждого пула очереди. Таким образом, запросы пользователей никуда не пропадают, и они вообще не замечают каких-то перебоев в работе сайтов под управлением IIS.

Ещё HTTP.sys умеет кешировать ответы (более подробно — Instances in which HTTP.sys does not cache content), поэтому некоторые запросы обрабатываются без передачи на уровень приложения, а также проводит первичный разбор URI запроса и его валидацию в соответствии с RFC 2396 (кое-что можно почерпнуть отсюда — Use of special characters like ‘%’ ‘.’ and ‘:’ in an IIS URL) и журналирование запросов/ответов.

Некоторые настройки HTTP.sys вынесены в системный реестр Windows (более подробно — Http.sys registry settings for Windows). Кстати, там же – в реестре – можно подсмотреть обычное место прописки нашего гражданина: %SystemRoot%\system32\drivers\http.sys.

2.2. World Wide Web Publishing Service (W3SVC)
  • Администрирование драйвера HTTP.sys.
  • Управление рабочими процессами.
  • Мониторинг показателей производительности веб-сайтов.

В IIS 7.x функция управления процессами была вынесена в отдельную службу – WAS (см. п.2.3) в целях универсализации архитектуры. Теперь WWW-служба стала по своей сути одним из адаптеров, специализируясь на протоколах HTTP/HTTPS – работа поверх драйвера HTTP.sys. Однако WWW-служба остаётся краеугольным компонентом IIS, поэтому её настройка отличается от настройки адаптеров к другим протоколам (чуть подобнее здесь); она функционирует в том же рабочем процессе, что и WAS, и реализована в той же самой библиотеке (рис. 2).


Рис.2. Рабочий процесс со службами W3SVC и WAS.

  • NetTcpActivator для протокола TCP;
  • NetPipeActivator для Named Pipes;
  • NetMsmqActivator для Message Queuing (ака MSMQ).


Рис. 3. Перечень стандартных не-HTTP-адаптеров в оснастке Служб Windows.

Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.

Администрирование и конфигурирование HTTP(S). В момент обновления конфигурации веб-сайтов, служба WAS передаёт эту информацию WWW-службе, а та уже, в свою очередь, настраивает HTTP.sys на прослушку конкретных портов, разбор IP и заголовка запрашиваемого сайта и, возможно, других параметров драйвера. В обратную сторону W3SVC обращается к WAS, когда в очередь запросов в HTTP.sys поступает новый, – для получения рабочего процесса-обработчика данного запроса.

Отслеживание показателей производительности. WWW-служба ведёт счётчики производительности, используя для этого драйвер HTTP.sys, и предоставляет их показатели веб-сайтами и кэшу IIS. Более подробной информации по этому вопросу мне найти не удалось.

2.3. Windows Process Activation Service (WAS)

Итак, WWW-служба в IIS 7.x, как и в IIS 6, продолжает выполнять задачи по администрированию HTTP.sys и управлению показателями производительности веб-сайтов. А вот задача управления рабочими процессами вынесена в отдельную службу – WAS. Она запускается системой в единственном экземпляре, считывает конфигурацию из файла %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config и настраивает через соответствующие адаптеры прослушивателей протоколов в соответствии с указанной в нём информации. Напомним, что для протоколов HTTP/HTTPS адаптером является служба W3SVC, а прослушивателем – драйвер HTTP.sys. При перехвате прослушивателем запроса он через свой адаптер обращается к службе WAS для получения рабочего процесса приложения, которому будет передан запрос для обработки и формирования ответа клиенту.

  • Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
  • Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
  • Исполняемый файл w3wp.exe – шаблон рабочего процесса.
  • Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
  • Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).


Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.

Как отмечалось выше, .NET Framework несёт в себе реализацию компонент для протоколов HTTP/HTTPS (наш любимый ASP.NET), net.tcp, net.pipe и MSMQ. Стеки протоколов HTTP/HTTPS и FTP всё-таки более тесно интегрированы в IIS и ОС, поэтому настройку для нового протокола лучше продемонстрировать на примере менее популярных дотнетовских протоколов. Итак, после установки фреймворка в файле конфигурации IIS ApplicationHost.config появляется записи:

А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:

В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.

Обратите внимание, что в стандартном режиме эксплуатации IIS служба WAS, служба-адаптер для каждого прослушивателя протокола (в т.ч. W3SVC) и сами драйверы/прослушиватели каждого из протоколов (в т.ч. HTTP.sys) запущены в ОС в единственном экземпляре. Но отдельные запросы могут направляться разным приложениям в разных рабочих процессах. С другой стороны, отдельно взятому приложению могут направляться запросы по разным протоколам через соответствующие адаптеры. Видимо, для корректной реализации такого поведения и была придумана архитектурная связка драйвер протокола – адаптер драйвера протокола – служба активации (своеобразный регулировщик, точнее — маршрутизатор) – рабочий процесс.

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

При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.

Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.


Рис. 5 Дополнительные настройки пула приложений

Ключевым нововведением в концепции пулов приложений в IIS 7.x стал новый параметр – модель управления контейнером, который может принимать 2 значения: классическая (Classic mode) и встраиваемая модель (Integrated mode).
Чтобы объяснить разницу между этими режимами работы, потребуется знакомство с понятием «модуль» (Module) в IIS 6/7.x и событийной моделью обработки запросов в связке IIS + ASP.NET. Тема эта достойна отдельной статьи, но меня на неё уже, увы, не хватит, судя по всему. Здесь же представлю вашему вниманию лишь общие, ключевые моменты.

Итак, IIS при обработке запроса пропускает его внутри рабочего процесса через последовательность специальных компонент – модулей. Например фильтрация, перенаправление, кэширование, аутентификация, авторизация. Каждый такой модуль ассоциируется с определённым событием, а их последовательность составляют событийную модель обработки запросов. Модули делятся на нативные (Native) и управляемые (Managed). Нативные модули поставляются вместе с IIS, а управляемые – в составе .NET Framework (ASP.NET). В общем-то, вы можете управлять ими в определённой степени на уровне конфигурации веб-приложения, но взаимодействовать из кода своего ASP.NET-сайта вы можете только с управляемыми модулями.


Рис. 6. Идеология модулей в IIS.

Классическая модель управления контейнером обеспечивает обратную совместимость с режимом изоляции рабочих процессов в IIS 6 – запросы к ASP.NET-сайту сначала проходят через нативные модули, а затем передаются в Aspnet_isapi.dll для обработки модулями в управляемой среде. Такое разделение между IIS и ASP.NET приводит к дублированию некоторых функций, например, аутентификации и авторизации. И вы не имеете возможности управлять программно поведением нативных модулей (пример хоть и не самый животрепещущий, но всё же – раздел «Убираем заголовок Server» в этой статье).

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

На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.

2.5. Домен приложения, приложение

Непосредственными контейнерами веб-приложения являются приложение и домен приложения (Application Domain, AppDomain). Зачастую эти два понятия отождествляются, но всё-таки это немного разные вещи. Приложение – это понятие IIS, а домен приложения – из ASP.NET. Причём в общем случае в приложении может быть несколько доменов. Приложением вы можете управлять из консоли IIS, а доменом приложения – в основном программно. Так, например, перезапускается приложение из консоли. А когда мы пересохраняем web.config, то перезагружается именно домен приложения, не трогая IIS-приложение.

Более важным с практической точки зрения является то, что приложение/домен приложения является sandbox-ом для кода вашего ASP.NET-сайта (не с такой надёжной изоляцией, как в случае с пулом, но всё же). Приведу один из моих любимых вопросов, которые я задавал соискателям на собеседованиях. Пусть имеются веб-сайт-1 и веб-сайт-2, а также некая библиотека MyLib.dll, в которой определён класс MyClass1 со статическим полем Field1. Итак, оба сайта работают под управлением одного пула приложений и используют одну и ту же библиотеку MyLib.dll. Веб-сайт-1 записывает в MyClass1.Field1 = 16 (рис. 7). Вопрос: увидит ли веб-сайт-2 сделанные изменения? Напрашивается ответ «Нет». Но почему? Потому что, для IIS-приложений выделяются непересекающиеся адресные пространства, даже если они работают внутри единого рабочего процесса, поэтому в память веб-приложений загружаются свои копии сборок (прошу не придираться к возможным неточностям в терминах работы с памятью в .NET Framework).

Рис. 7. Рисунок для задачки.

Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.

3. Что дальше?

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

Как отмечалось выше в разделе 2.4 модули IIS содержатся внутри рабочего процесса. Через них последовательно пропускается запрос (в отличие от HttpHandler-ов). Их набор и порядок определяется конфигурацией сервера и/или конкретного веб-приложения. Модули предназначены для отдельных, узконаправленных задач, таких как авторизация, кэширование, кастомное логгирование, сжатие, возврат статического контента и, конечно же, формирование HTML-страниц по заданному URL.

The Nettcpactivator Service Depends on the Nettcpportsharing Service Which Failed to Start

Unleashing Windows Magic: Navigating Nettcpactivator and its Connection to Nettcpportsharing

Welcome to the realm of Windows wizardry, where hidden beneath the surface lies a dynamic duo of services – Nettcpactivator and Nettcpportsharing. These mystical components play a pivotal role in ensuring seamless communication between applications that utilize the .NET Framework’s TCP protocol. However, if Nettcpportsharing stumbles, Nettcpactivator’s power is hindered, leading to network issues and baffling errors. In this enchanting article, we’ll unveil the mysteries behind Nettcpportsharing’s failures and illuminate the path to resolution.

**Unraveling the Tale of Nettcpactivator and Nettcpportsharing**

Imagine Nettcpactivator as the conductor of an audio symphony, directing applications that communicate via the .NET Framework’s TCP protocol. But, behind this conductor’s brilliance, lies the dependable support of Nettcpportsharing – a service dedicated to sharing TCP ports among various applications.

Nettcpactivator listens attentively for incoming calls from applications tuned into the .NET Framework’s TCP wavelength. Upon receiving a call, it orchestrates the requested application, ensuring harmonious communication between them. Meanwhile, Nettcpportsharing facilitates the sharing of TCP ports among these applications, allowing them to coexist in perfect harmony.

Without Nettcpportsharing’s support, Nettcpactivator’s orchestra would be silenced. The sharing of ports is the backbone of Nettcpactivator’s symphony, enabling its captivating performances.

**Unraveling the Mysteries of Nettcpportsharing Failures**

When Nettcpportsharing falters, it’s time to embark on a quest for solutions. The path to troubleshoot this enigma is filled with clues and steps to guide you to success.

1. **Investigate Service Status**: Begin your journey by exploring the Services window. Invoke it with a touch of magic – press Windows + R, and type “services.msc.” Navigate to Nettcpportsharing and assess its state. Should it lay dormant, attempt to awaken it manually. If the spell fails, delve into the service’s log for hidden messages.

2. **Master Firewall Incantations**: Cast your gaze upon Windows Firewall settings. Verify that Nettcpportsharing is granted passage through the digital fortress. Should it be denied, extend an invitation by adding it to the list of permitted programs.

3. **Resurrect through Reinstallation**: When all seems lost, summon the power of reinstallation. Invoke the arcane command “appwiz.cpl” through Windows + R, and select Nettcpportsharing for an ethereal uninstallation. Then, channel its essence anew by summoning it from the Microsoft realm.

4. **Resetting TCP/IP Mysteries**: For those seeking a deeper awakening, invoke the Command Prompt by uttering the words “netsh int ip reset.” This incantation resets the TCP/IP, potentially dispelling the shadows cast by failures.

5. **Reinstall Windows with Care**: Should your quest lead to a dead-end, contemplate the last resort – reinstalling Windows. But remember, this incantation will erase all in its path, a choice to be made only when all other paths have been exhausted.

**Diving Deeper: Navigating Nettcpactivator’s Benefits**

Nettcpactivator holds the key to enhancing your network’s performance, a tool wielded by the tech-savvy. It is your portal to optimizing network settings, monitoring performance, and fine-tuning the symphony of your digital domain.

This service is the master of your network’s configuration, including IP addresses, subnets, and routing tables. It grants you the power to control the very essence of your network, molding it to your desires.

As a guardian of performance, Nettcpactivator watches over your network’s speed and reliability. It ensures your connections are stable and your digital interactions seamless.

But that’s not all – Nettcpactivator also doubles as a security sentinel. With it, you can fortify your network’s defenses, configure firewalls, and detect any sinister activity prowling in your digital realm.

You wield the power to manage network resources. With Nettcpactivator’s assistance, you can allocate bandwidth, storage, and memory with the precision of a virtuoso conductor, optimizing your network’s performance.

**Guiding the Stars: Configuring Nettcpportsharing for Optimal Performance**

The art of configuring Nettcpportsharing is akin to a celestial dance, ensuring applications share a harmonious connection. Here’s how to master this cosmic choreography:

**Step 1: Counting Constellations – Determine Application Count**

Begin your voyage by counting the stars – or applications – that will share a single port. This guides the allocation of resources, preventing overcrowding that dampens performance.

**Step 2: Weaving the Constellations – Configure Port Sharing**

Now, weave these constellations together. Traverse to the Windows Control Panel, unveiling the secrets of Nettcpportsharing. Here, configure settings like maximum connections, bandwidth, and latency. These settings shape the harmony of shared ports.

**Step 3: Celestial Observation – Monitor the Skies**

Monitor your constellation’s movement across the skies of network performance. Employ tools like Wireshark or NetFlow Analyzer to chart the trajectory of your network’s journey, spotting any turbulence along the way.

**Step 4: Stars Align – Adjust as Needed**

When the stars align, and the network’s melody resonates beautifully, take a moment to bask in your success. Should hiccups occur, don’t hesitate to tweak the settings. Expand the connection limit, fine-tune bandwidth, or reduce latency to perfect your celestial symphony.

In the grand tapestry of Windows, Nettcpactivator and Nettcpportsharing are the threads that weave the network’s intricate design. By delving into their mysteries and wielding their power, you embark on a journey of digital transformation, sculpting a network worthy of legends.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *