2012-10-24 4 views
0

메시지를 클라이언트에 보내는 WCF 서비스가 있습니다. 콜백 메서드를 비동기 적으로 호출하고 싶습니다. 이 대답을 읽었습니다 : WCF asynchronous callbackwcf 비동기 콜백

하지만 한 가지 문제가 있습니다. WebServiceReference에서 IMyServiceCallback을 생성 할 때 비동기 메서드 (BeginCallbackMethod 및 EndCallbackMethod) 만있는 콜백 계약이있는 반면 동기 및 비동기 메서드가 모두 포함됩니다. MyService에서 calback BeginCallbackMethod를 호출하면 콜백 구현시 클라이언트 측에서 동기 CallbackMethod를 사용하고 있습니다. 그 이유는 무엇입니까? 구성 방법이 있습니까?

답변

0

기본적으로 WCF는 sync 및 async가 모두있는 경우 작업의 동기 버전을 호출합니다. 그 논리를 어떻게 (또는) 어떻게 변경할 수 있는지 모르겠지만 생성 된 콜백 인터페이스에서 단순히 동기식 메서드를 제거하는 것만 큼 할 수 있습니다. 콜백 코드는 계속 작동해야하며 대신 비동기 구현을 사용합니다. 동기 버전에서 [OperationContract] 속성을 제거하여 동일한 효과를 얻을 수도 있습니다.