我有WCF服务,它向客户端发送消息。我想异步调用回调方法。我读过这个答案: WCF asynchronous callback
但有一个问题。当我从WebServiceReference生成IMyServiceCallback时,它包含同步和异步方法(而在服务端,只有异步方法的回调契约 - BeginCallbackMethod和EndCallbackMethod)。更有意思的是,当我从MyService调用calback BeginCallbackMethod时,在客户端(在回调实现中)它使用同步CallbackMethod。问题是为什么?有没有办法配置它?
答案 0 :(得分:0)
默认情况下,如果同步和异步都存在,WCF将调用操作的同步版本;我不知道如何(或者如果)你可以改变那个逻辑,但你可以做的一件事就是从生成的回调接口中删除同步方法。回调代码应该继续工作,它将使用异步实现。您也可以从同步版本中删除[OperationContract]
属性,效果相同。