2009-08-18 5 views
3

WCF가 .net의 네트워크 및 응용 프로그램을 통한 통신을위한 새로운 표준이라고 들었습니다. 아이디어는 이해하기 쉽고, 프로그램이 통신 할 수있는 표준 인터페이스를 제공합니다.WCF .net이 아닌 명명 된 파이프를 통한 통신 App

여기 내 상황이 있습니다. .net 앱이 있습니다. 파이프를 통해 루비 응용 프로그램과 통신하고 싶습니다. .net 측 (서버)에서는 루비 측 (클라이언트)이 껌과 덕트 테이프를 씹는 동안 WCF를 사용하고 싶습니다.

양쪽 끝이 WCF 일 필요는 없지만이 작업을 수행하는 데는 어떤 작업이 필요하다고 가정합니다. WCF가 들어오는 요청을 기대하는 표준 프로토콜이 있습니까?

답변

1

비 WCF 클라이언트에 대한 명명 된 파이프 바인딩을 사용하면 이 가능하지만 일 수는 있지만 쉽지 않습니다. WCF가 사용할 수 있도록 올바른 형식의 메시지를 보내야합니다.

복잡성에 대한 힌트를 얻으려면 first 또는 last entry on WCF message framing을 참조하십시오. 불가능하지는 않지만, 노력할만한 가치가 있습니까?

basicHttpBinding 또는 webHttpBinding과 같이 http 전송 + 일부 유형의 텍스트 또는 마크 업 인코딩을 권장합니다.

+0

루비로 패킹하는 것은 상당히 쉽지만 영어에서 코드로 프레이밍 프로토콜을 변환하는 것은 deprecated pipes lib를 사용하는 것보다 더 많은 작업이 될 수 있습니다. – QueueHammer

0

바인딩에 따라 WCF를 웹 HTTP 바인딩으로 만들고 편안하게 (가장 쉽게) 만들고 가져 오기와 게시 만 할 수 있습니다. SOAP 헤더 등을 사용하여 WCF와 통신해야하는 다른 바인딩은 나 자신이하지는 않았지만 .net 이외의 응용 프로그램을 위해 SOAP 헤더를 사용하는 방법에 대한 자세한 정보가 나와 있습니다.

0

계약을 가능한 한 간단하게 유지하고 싶습니다 (노출하는 유형과 관련하여). 필자가 직접 시도하지는 않았지만 이러한 유형의 기능이 지원됩니다 (Java에서 Java 로의 일반적인 사용).

어느 쪽 (.Net 또는 Ruby)이 서버인지는 언급하지 않지만 WCF에서 서비스를 호스팅하고이를 루비에서 소비하는 경우이 작업이 훨씬 더 쉬울 것으로 기대합니다. 다른 방향으로가는 일 수 있습니다. 왜냐하면 WCF의 내부와 병을 쌓는 것이 약간의 고통이 될 수 있기 때문입니다.

+0

클라이언트 서버 관련 선박에 대한 좋은 제안인데, 게시물을 업데이트했습니다. – QueueHammer

0

어떤 종류의 "파이프"를 언급하고 있습니까? 명명되지 않은 파이프 바인딩을 .NET이 아닌 코드와 함께 사용할 수 없습니다.

webHttpBinding 또는 basicHttpBinding과 같은 HTTP 바인딩 중 하나를 사용하는 것이 좋습니다.

+2

나는 특별히 명명 된 파이프를 사용하려고합니다. WCF의 이점 중 하나는 프로토콜이 전송과 독립적 이었지만 루비는 파이프를 가지고 있기 때문에 lib는 작동하지 않아야합니까? – QueueHammer

+0

나는 그것을 뒤로 가져 간다. 최근에 읽은 것은 명명 된 파이프 바인딩이 같은 시스템에서만 사용될 수 있다는 것입니다. 나는 또한 어디서나 문서화 된 세부 사항을 보지 못했다. Ruby와 함께 사용하는 것은 불가능하지만, 그럼에도 불구하고 불가능할 수도 있습니다. –

관련 문제