Служба общего доступа к портам Net.Tcp (NetTcpPortSharing) по умолчанию отключена в Windows, и приложения, построенные на WCF с привязкой netTcpBinding, при попытке запуска выдают ошибку, что адрес уже используется или конечная точка недоступна. Если при старте сервиса вы видите исключение AddressAlreadyInUseException или сообщение о невозможности прослушивания порта — первое, что стоит проверить, это состояние именно этой службы в консоли services.msc.
Ниже разберём, зачем нужна эта служба, как она устроена, в каких сценариях её включение обязательно, а в каких — лучше оставить отключённой. Отдельно рассмотрим типичные ошибки запуска и способы их диагностики без риска для системы.
Что такое служба Net.Tcp Port Sharing
Net.Tcp Port Sharing Service — это системная служба Windows, которая позволяет нескольким процессам совместно использовать один TCP-порт. В обычной модели сокетов порт может занимать только один процесс: вторая попытка привязки к тому же номеру порта завершится ошибкой. Служба решает эту проблему, принимая входящие подключения на себя и маршрутизируя их к нужному приложению.
Технология тесно связана с Windows Communication Foundation (WCF). Приложения, использующие привязку netTcpBinding, могут регистрироваться в службе общего доступа и получать через неё входящие сообщения по протоколу TCP. По умолчанию для этого используется порт 808, хотя конфигурация приложения может задавать и другие номера.
Служба входит в состав компонента .NET Framework и присутствует в Windows начиная с версий, где поддерживается WCF. Важно понимать: она не нужна обычным пользовательским программам, браузерам или играм — её включают в основном разработчики и администраторы серверных приложений.
Когда службу нужно включать
Включение оправдано в строго определённых сценариях. Если вы не работаете с WCF-приложениями, службу лучше оставить отключённой — лишний работающий компонент расширяет поверхность потенциальных сетевых атак.
- 🔌 На сервере развёрнуто несколько WCF-сервисов с netTcpBinding, которым нужно слушать один и тот же порт.
- 🖥️ Приложение размещено в IIS и активируется через Windows Process Activation Service (WAS) по протоколу net.tcp.
- ⚙️ В журнале событий приложения присутствуют ошибки активации с упоминанием NetTcpPortSharing или SMSvcHost.
- 🧩 Корпоративное ПО в документации прямо требует запущенную службу общего доступа к портам.
Обратная ситуация: если вы нашли эту службу в списке, пытаясь ускорить систему или разобраться с сетевой проблемой домашнего ПК, — она почти наверняка не является причиной неполадок. Отключённое состояние «Вручную/Отключена» для неё штатно.
Как включить службу через services.msc
Стандартный способ — консоль управления службами. Нажмите Win + R, введите services.msc и подтвердите запуск. В списке найдите строку Служба общего доступа к портам Net.Tcp (NetTcpPortSharing), откройте её свойства двойным щелчком.
В окне свойств измените тип запуска на «Автоматически», если служба нужна постоянно, или «Вручную» — если достаточно запуска по требованию. Затем нажмите кнопку «Запустить» и убедитесь, что состояние сменилось на «Выполняется».
☑️ Проверка после включения службы
Те же действия можно выполнить из командной строки с правами администратора:
sc config NetTcpPortSharing start= auto
net start NetTcpPortSharing
После запуска проверьте, что процесс SMSvcHost.exe появился в диспетчере задач — именно он реализует прослушивание и маршрутизацию подключений.
Зависимости и связанные компоненты
Служба не работает изолированно. Она зависит от компонентов .NET Framework, а для сценариев с IIS дополнительно требуется включённая поддержка активации по TCP. В компонентах Windows это пункты ветки Службы активации процессов Windows и связанные настройки .NET — точный состав зависит от версии системы, поэтому сверяйтесь с документацией под вашу редакцию Windows.
| Компонент | Роль | Где проверить |
|---|---|---|
| NetTcpPortSharing | Совместное использование TCP-порта | services.msc |
| SMSvcHost.exe | Процесс-хост службы | Диспетчер задач |
| WAS | Активация приложений IIS | services.msc, компоненты Windows |
| .NET Framework | Среда выполнения WCF | Установленные компоненты |
| netTcpBinding | Привязка WCF-приложения | Конфигурация приложения |
⚠️ Внимание: включение службы открывает прослушивание TCP-порта на машине. Убедитесь, что брандмауэр Windows пропускает только нужные подключения, а порт не доступен из недоверенных сетей без необходимости.
Типичные ошибки и их диагностика
Чаще всего проблемы проявляются не в самой службе, а в приложении, которое пытается её использовать. Разберём основные симптомы и порядок проверки.
Служба не запускается. Откройте журнал событий (eventvwr.msc), раздел «Журналы Windows → Система», и найдите записи от источника Service Control Manager в момент попытки запуска. Текст ошибки укажет причину: повреждённая конфигурация, отсутствующие зависимости или проблемы с .NET Framework. Возможная причина — повреждение компонентов .NET; в этом случае помогает восстановление через «Программы и компоненты» или переустановка соответствующей версии.
Приложение всё равно не получает подключения. Проверьте, что в конфигурации WCF-приложения для привязки включён параметр совместного использования порта — portSharingEnabled="true". Без этого флага приложение пытается занять порт напрямую и конфликтует с другими процессами.
Порт занят сторонним процессом. Узнать, кто слушает конкретный порт, можно командой:
netstat -ano | findstr :808
По идентификатору процесса (PID) из последнего столбца найдите программу в диспетчере задач. Если порт занял неожиданный процесс, освободите его или перенастройте приложение на другой номер порта.
Где хранится конфигурация SMSvcHost
Параметры службы общего доступа хранятся в файле SMSvcHost.exe.config рядом с исполняемым файлом в каталоге .NET Framework. Изменять его стоит только при понимании последствий, предварительно сделав резервную копию.
⚠️ Внимание: не отключайте и не удаляйте системные файлы SMSvcHost.exe вручную. Если подозреваете повреждение компонента, используйте штатное восстановление .NET Framework или проверку целостности системы командой sfc /scannow.
Безопасность и влияние на систему
Запущенная служба потребляет минимум ресурсов в простое — нагрузка появляется только при активных подключениях. Основной аспект, который стоит контролировать, — сетевой: любой прослушиваемый порт теоретически доступен извне, если его не ограничить правилами брандмауэра.
Рекомендуется создать в брандмауэре Windows правило, разрешающее входящие подключения к нужному порту только из доверенной подсети. На серверах дополнительно проверяйте, что порт не проброшен на маршрутизаторе в открытый интернет без явной необходимости.
Как проверить, что всё работает
Финальная проверка сводится к трём шагам. Во-первых, убедитесь, что служба в состоянии «Выполняется» и тип запуска соответствует вашему сценарию. Во-вторых, командой netstat -ano подтвердите, что ожидаемый порт находится в состоянии LISTENING. В-третьих, запустите клиентское приложение и проверьте фактическое подключение к WCF-сервису.
Если подключение не устанавливается, смотрите журналы в таком порядке: сначала журнал приложения, затем «Журналы приложений и служб» с записями, связанными с активацией, и только потом системный журнал. Такая последовательность быстрее приводит к первопричине, чем случайные изменения настроек.
Часто задаваемые вопросы
Можно ли удалить службу Net.Tcp Port Sharing?
Штатного сценария удаления нет — это компонент .NET Framework. Достаточно оставить её отключённой: в таком состоянии она не потребляет ресурсы и не слушает сеть.
Нужна ли эта служба для домашнего ПК без серверных приложений?
Нет. Если вы не развёртываете WCF-приложения и не используете ПО, которое явно требует эту службу, её стандартное отключённое состояние менять не нужно.
Какой порт использует служба по умолчанию?
Для сценариев WCF с netTcpBinding типичным является порт 808, однако конкретный номер задаётся конфигурацией приложения и может отличаться. Точное значение смотрите в настройках вашего сервиса.
Служба не запускается с ошибкой — что проверить в первую очередь?
Откройте eventvwr.msc и найдите записи Service Control Manager в момент сбоя. Затем проверьте целостность .NET Framework и системных файлов командой sfc /scannow с правами администратора.
Влияет ли включённая служба на скорость интернета?
Нет. Служба лишь принимает и маршрутизирует подключения для зарегистрированных приложений — в простое она не генерирует трафик и не замедляет сеть.