2012-06-18 5 views
1

wcf를 사용하여 http 수신기 (webservice)를 빌드하려고합니다. 이 수신기는 더 큰 데스크톱 응용 프로그램의 일부입니다. 이 데스크탑 응용 프로그램은 http 리스너도 호출합니다.wcf http 바인딩 대 dualhttp 바인딩

리스너가 데이터를 수신하면 데스크탑 응용 프로그램으로 전달되어야합니다. 나는 httpbinding 서비스를 구축하고 문제는 내가 때문에 콜백의 wsDualhttpbinding을 필요로한다는 것입니다 콜백 메커니즘

[OperationContract(IsOneWay = true)] 
void OnDataReceived(Data data); 

을 사용했습니다.

정말 하나의 .NET 응용 프로그램에서 다른 응용 프로그램으로 데이터를 보내려면 이중 HTTP를 사용해야합니까, 아니면 뭔가 빠졌습니까?

감사합니다.

+0

HTTP를 사용해야합니까? –

+0

앱이 http를 통해 데이터를 수신합니다. 그래서 청취자 부분은 실제로 http – Tarscher

+0

입니다. 제가 의미하는 바는 왜 http를 전송 수단으로 사용해야합니까? 예를 들어 msmq를 사용할 수 있습니까? 그렇다면 더 쉬운 방법이 있습니다. –

답변

1

WCF 서비스로 노출되는 이벤트 소스가 있습니다. 서비스가 클라이언트에게 실시간으로 이벤트를 보내는 유일한 방법은 duathttp 또는 dualtcp 바인딩을 사용하는 전이중 연결을 사용하는 것입니다.

그러나 양면 바인딩을 사용하는 것이 가장 좋습니다. 고객이 관심있는 이벤트가 발생하면 클라이언트가 서비스에 가입하고 메시지를 수신하는 것이 더 간단합니다.

클라이언트와 서비스간에 실제 연결이 없기 때문에 이중 바인딩보다 훨씬 간단합니다. 비동기 메시지

WCF는 msmq 전송을위한 바인딩을 제공하지만 이러한 종류의 게시 - 보조 지원을위한 바인딩을 제공하지 않으므로 코드를 코딩하거나 NServiceBus과 같은 오픈 소스 메시징 버스를 사용할 수 있습니다.

2

예 이중 또는 이중 통신이 필요합니다. HTTP는 본질적으로 단일 방향 프로토콜입니다. 클라이언트가 서버를 호출해야합니다. 서버는 클라이언트와 대화 할 방법이 없습니다.

+0

둘 다 .net 코드를 사용하여 데이터를 데스크탑 응용 프로그램으로 옮기는 더 쉬운 방법은 없습니까? – Tarscher

+0

HTTP를 전송 수단으로 사용해야하는 경우가 아닙니다. –

+0

은이 듀얼 HTTP 표준을 준수합니까? http 리스너는 다른 http 호출과 함께 작동해야합니다. – Tarscher

1

폴링 메커니즘과 반대되는 콜백 메커니즘을 사용하는 경우 WCF 서비스가 수신 및 응답 응답과 반대로 메시지를 보내고받을 수 있어야하므로 이중 바인딩이 필요합니다.