로컬 Windows 명명 된 파이프가 실패하는 이유는 무엇입니까?


14

나는 하루 종일이 일을 열심히하고 있었고 갇혀 있습니다. 오늘 아침 아시아 동료들이 전화를 걸어 제품 데이터 관리 시스템 용 SolidWorks 애드 인이 로컬 기본 응용 프로그램과 통신 할 수 없었습니다. 이 문제는 Windows 도메인의 최종 사용자 컴퓨터에 영향을줍니다. SQL Server 도구 상자의 READPIPE 및 MAKEPIPE 유틸리티를 사용하여 기본 문제가 Windows 파이프 기능이라는 것을 알아 냈습니다.

  • MAKEPIPE 유틸리티는 파이프를 작성하고 클라이언트를 기다리고 있습니다. READPIPE 유틸리티는 "파이프를 열지 못했습니다. 상태 53"을 반환합니다. http://support.microsoft.com/kb/110905 에 따르면 네트워크 이름을 찾을 수 없음을 의미합니다. 내 로컬 컴퓨터에서 파이프는 문제없이 READPIPE에서 MAKEPIPE로 "hello"를 보냅니다.
  • 명명 된 파이프를 활성화하는 서버 프로세스가 실행 중입니다.
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lanmanserver \ Parameters 아래의 설정이 정상적으로 보입니다. 파이프 방화벽 설정이 없습니다.
  • 이 문제는 일부 사용자에게 영향을 주지만 일부 사용자에게는 영향을 미치지 않습니다. 일부 네트워크 공유 그룹을 제외하고 도메인 그룹을 변경하지 않았습니다.
  • 관리자로 로그온했는데 여전히 파이프가 작동하지 않습니다.

도움을 주셔서 감사합니다! 감사합니다.


영향을받는 사용자가 해당 서버의 일반 파일 공유에 연결할 수 있습니까?
Harry Johnston

현재 주식에는 문제가 없습니다. 이것은 서버 / 클라이언트 문제가 아닙니다. 두 프로세스 모두 같은 컴퓨터에 있습니다.
user152700

READPIPE 및 MAKEPIPE를 사용하여 문제가있는 컴퓨터에 관리자로 로그인 한 경우 사용중인 정확한 명령은 무엇입니까? (댓글
Harry Johnston

당신의 지원에 감사드립니다. 이것은 어려운 일이며 여기에 해결책을 문서화 할 것입니다.
user152700

답변:


12

모든 경우에 1,5 일이 걸렸습니다. 여기 문서화가 있습니다.

조짐

  • 응용 프로그램으로 끌어서 놓기가 작동하지 않습니다.
  • 기본 앱과 애드 인 간의 프로세스 간 통신이 작동하지 않습니다.

원인 / 배경

프로세스 간 통신은 Windows 명명 된 파이프 (UNIX 스타일 파이프와 혼동하지 않아야 함)를 통해 일부 앱에 대해 구현됩니다. MSDN 설명서를 참조하십시오 : http://msdn.microsoft.com/en-us/library/aa365590.aspx

Windows 이름 파이프가 작동하지 않는 다른 원인이있을 수 있습니다. 파이프가 문제의 원인인지 확인하기 위해 MAKEPIPE 및 READPIPE 도구를 사용할 수 있습니다. 이 KB 기사는 다음과 같은 테스트 절차를 설명합니다. http://support.microsoft.com/kb/68941 Sysinternals 도구 프로세스 탐색기는 현재 열려있는 파이프를 찾는 데 유용 할 수 있습니다. "찾기-> 핸들 또는 DLL 찾기 ..."옵션을 사용하고 "\ Device \ NamedPipe \"패턴을 입력하십시오. 어떤 프로세스가 어떤 파이프를 열 었는지 보여줍니다. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

문제 해결

원인 1 : 파이프 방화벽에 의해 응용 프로그램이 차단되었습니다

Windows는 응용 프로그램에서 명명 된 파이프를 사용하지 못하도록 차단할 수 있습니다. 이 방화벽은 일반적으로 활성화되어 있지 않으며 레지스트리를 통해 구성됩니다. MS 지원 기사 ( http://support.microsoft.com/kb/925890)를 참조하십시오 . 파이프 방화벽이 사용 가능하지 않은지 확인하거나 Keytech 및 모든 추가 기능을 허용 된 애플리케이션 목록에 추가하십시오.

원인 2 : 파일 및 프린터 공유 서비스가 활성화되어 있지 않습니다.

명명 된 파이프는 파일 및 프린터 공유도 제어하는 ​​프로세스에 의해 활성화됩니다. 이 프로세스가 Windows 서비스 도구를 사용하여 실행 중인지 확인하십시오. 서비스 이름은 서비스 목록에 "서버"로 표시됩니다. 서비스 이름은 LanmanServer이고 EXE는 C : \ Windows \ system32 \ svchost.exe -k netsvcs입니다.

원인 3 : Windows 방화벽이 LanmanServer를 차단하고 있습니다

Windows 방화벽은 동일한 머신에서 프로세스 간 통신에만 사용되는 경우에도 명명 된 파이프를 차단할 수 있습니다. 특히 도메인 및 로컬 방화벽 규칙으로 인해 충돌이 발생할 수 있습니다. “Windows 방화벽 허용 프로그램”목록의 두 항목이 충돌을 나타냅니다. 대부분의 경우이 문제는“방화벽 상태 확인”창을 사용하여 해결할 수 있습니다. 이 창에 권장 방화벽 규칙 설정 옵션이 표시되면이 옵션을 사용하여 파이프의 차단을 해제 할 수 있습니다. 도메인 방화벽 규칙과 함께 도메인에서 PC를 먼저 가입 해제 한 다음 파일 및 프린터 공유 서비스를 허용해야하는 경우가 있습니다.


3
원인 1) 파이프 방화벽은 명명 된 파이프에 대한 원격 액세스에만 영향을줍니다. 그러나 \\ machinename \ pipename을 사용하여 명명 된 파이프에 연결하면 machinename이 로컬 시스템 인 경우에도 원격 액세스로 계산됩니다.
Harry Johnston

3
원인 2) 마찬가지로, 파일 및 프린터 공유는 명명 된 파이프에 대한 원격 액세스에만 필요합니다. \\ machinename \ pipename은 아마도이 목적을위한 원격 액세스로 계산됩니다.
Harry Johnston

원인 3) \\ machinename \ pipename을 사용하더라도 Windows 방화벽은 로컬 연결을 차단할 수 없습니다. 그러나 도메인에 있고 Windows 방화벽이 잘못 잘못 구성된 경우 인증과 관련하여 더 광범위한 문제가 발생했을 수 있습니다.
Harry Johnston

@HarryJohnston 어떤 유형의 인증을 차단할 수 있습니까? 여기에ServiceHost.Authentication 설명 된 것처럼 ?
iCantSeeSharp

도메인에 있고 도메인 컨트롤러에 대한 네트워크 액세스가 Windows 방화벽에 의해 차단 된 경우 (또는 다른 이유로) 인증하지 못할 수 있습니다. 로컬 파이프 액세스에는 영향을 미치지 않지만 YMMV에 영향을 미칩니다.
Harry Johnston
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.