문제

소개 :

며칠 전에 Windows 서비스에서 호스팅 된 WCF 서비스를 성공적으로 구현했습니다. StackoverFlow의 커뮤니티가 저를 도왔습니다 여기서 WSDL 노출. 다시 한번 감사드립니다. 그러나 최근에 나는 이번 서비스에 대한 또 다른 잠재적 클라이언트가 서비스와 같은 기계에 위치하고 있음을 알게되었으며, 이로 인해 Pipesbinding이라는 이름의 다른 엔드 포인트를 추가해야한다고 생각합니다.

명명 된 파이프는 제가 염려하는 한 기계 내 통신을위한 최상의 솔루션 인 것 같습니다. 제발 이것이 잘못되면 나를 수정하십시오.

문제:

동일한 서비스/계약에 대해 다른 엔드 포인트를 노출시켜야하지만 이번에는 NetNamamePipeBinding을 사용합니다. 그러나 클라이언트의 서비스 참조를 추가 할 수있는 방법을 이해하지 못합니다. 어리석게도 추가 한 후

<endpoint address="net.pipe://localhost/OfficeService"
          binding="netNamedPipeBinding"
          contract="netBridge.Development.OfficeService.IWordService"
          bindingConfiguration="localBinding" />

Net.pipe : // .... URL을 입력하는 동일한 기계에있는 Windows Forms 응용 프로그램에 서비스 참조를 추가하려고했습니다. 작동하지 않았습니다. 필요하지 않다고 생각했기 때문에 MEX (메타 데이터 교환) 엔드 포인트를 일찍 제거했다고 언급해야합니다.

  1. 이 MEX 엔드 포인트는 명명 된 파이프 엔드 포인트 바인딩 발견에 필요합니까?
  2. 클라이언트 앱에서 이름이 지정된 파이프 엔드 포인트에 서비스 참조를 추가해야합니까?
도움이 되었습니까?

해결책

현지 교착 상태에 대해 궁금하지만, 당신의 엔드 포인트는 괜찮아 보인다 ...

가장 쉬운 옵션은 서비스 엔드 포인트와 일치하도록 지명 된 파이프 클라이언트의 엔드 포인트 구성 만 변경하는 것입니다. 클라이언트가 클라이언트 구성 파일에서 유일한 엔드 포인트 인 한 클라이언트는 신경 쓰지 않아야합니다. 그렇지 않으면 엔드 포인트에 이름을 추가하고 프록시 객체를 새로 올릴 때 클라이언트가 특정 이름을 선택하도록해야합니다.

행운을 빕니다!

다른 팁

MEX 종말점은 WSDL이 구축 된 HTTP 위치를 제공하므로 개발 중에 필요합니다. WSDL은 클라이언트가 명명 된 파이프, TCP/IP 또는 기타 항목을 통해 서버와 통신하는 방법을 클라이언트에게 설명합니다. 클라이언트 앱이 이름이 지정된 파이프 바인딩에 프록시를 구축하고 구성을 설정하면 MEX 엔드 포인트가 더 이상 필요하지 않습니다. 따라서 원하는 경우 환경을 통해 배포하기 전에 MEX 종말점을 제거 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top