12

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

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

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

1 ответ1

10

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

симптомы

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

Причины / фон

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

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

Устранение проблем

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .