Каковы причины сбоев локальных именованных каналов Windows?

Каковы причины сбоев локальных именованных каналов Windows?

Я усердно работал над этим весь день, и я застрял. Сегодня утром наши азиатские коллеги позвонили мне, потому что надстройка SolidWorks для нашей системы управления данными о продуктах не смогла связаться с локальным основным приложением. Проблема затрагивает компьютеры конечных пользователей в домене Windows. Мы использовали утилиты READPIPE и MAKEPIPE из набора инструментов сервера SQL, чтобы выяснить, что основная проблема была в функции конвейера Windows.

  • Утилита MAKEPIPE создает канал и ждет клиента. Утилита READPIPE возвращает: "Не удалось открыть канал. Статус 53". Согласноhttp://support.microsoft.com/kb/110905это означает, что сетевое имя не найдено. На моем локальном компьютере pipe отправляет "привет" от READPIPE к MAKEPIPE без проблем.
  • Серверный процесс, включающий именованные каналы, запущен.
  • Настройки в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters выглядят нормально. Настройки брандмауэра для каналов отсутствуют.
  • Проблема затрагивает некоторых пользователей, но не всех. Мы не вносили изменения в группы доменов, за исключением некоторых групп сетевых ресурсов.
  • Я вошел в систему как администратор, но каналы все равно не работают.

Любая помощь приветствуется! Спасибо.

решение1

Потребовалось 1,5 дня, чтобы разобраться в каждом случае. Здесь для документации.

Симптомы

  • Перетаскивание в приложения не работает.
  • Межпроцессное взаимодействие, например, между основным приложением и надстройками, не работает.

Причины/предыстория

Межпроцессное взаимодействие реализовано для некоторых приложений через именованные каналы Windows (не путать с каналами в стиле UNIX). См. документацию MSDN:http://msdn.microsoft.com/en-us/library/aa365590.aspx

Причины, по которым каналы имен Windows не работают, могут быть разными. Чтобы убедиться, что каналы являются причиной проблемы, можно использовать инструменты MAKEPIPE и READPIPE. В этой статье базы знаний описывается процедура тестирования:http://support.microsoft.com/kb/68941 Инструмент Sysinternals Process Explorer также может быть полезен для поиска каналов, которые открыты в данный момент. Используйте опцию "Find -> Find Handle or DLL..." и введите шаблон "\Device\NamedPipe\". Он покажет вам, какие процессы имеют открытые каналы.http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Устранение неполадок

Причина 1: Приложение заблокировано брандмауэром Pipes

Windows может блокировать приложения от использования именованных каналов. Этот брандмауэр обычно не включен и настраивается через реестр. См. статью поддержки MS здесь:http://support.microsoft.com/kb/925890. Проверьте, не включен ли брандмауэр Pipes, или добавьте Keytech и все надстройки в список разрешенных приложений.

Причина 2: Служба общего доступа к файлам и принтерам не включена.

Именованные каналы включаются процессом, который также управляет общим доступом к файлам и принтерам. Проверьте, запущен ли этот процесс, с помощью инструмента «Службы Windows». Имя службы отображается как «Сервер» в списке служб. Имя службы — LanmanServer, а EXE — C:\Windows\system32\svchost.exe -k netsvcs

Причина 3: Брандмауэр Windows блокирует LanmanServer

Брандмауэр Windows может блокировать именованные каналы, даже если они используются только для межпроцессного взаимодействия на одной машине. Особенно доменные и локальные правила брандмауэра могут вызывать конфликт. Две записи в списке «Разрешенные программы брандмауэра Windows» указывают на конфликт. В большинстве случаев эту проблему можно решить с помощью окна «Проверка состояния брандмауэра». Если в этом окне отображается опция для установки рекомендуемых правил брандмауэра, каналы часто можно разблокировать с помощью этой опции. В сочетании с правилами брандмауэра домена иногда необходимо сначала отключить ПК от домена, а затем разрешить службу общего доступа к файлам и принтерам.

Связанный контент