调试WCF回调服务

时间:2013-10-10 15:04:11

标签: c# wcf callback

我正在实施此tutorial之后的wcf回调服务。

问题是客户端的回调方法永远不会被调用。

 public void NotifyClient(object sender, EventArgs args)
    {
        INotificationCallback callback = OperationContext.Current.GetCallbackChannel<INotificationCallback >();

        callback.OnStepReached(((ModuleEventArgs)args).Step);
    }

在服务器端调用回调但从未到达客户端。我不知道出了什么问题,我唯一得到的是一段时间后的TimeOutException。

我在服务器端的回调是System.Runtime.Remoting.Proxies._TransparentProxy

我想知道是否有一种简单的方法可以调试此行为。

2 个答案:

答案 0 :(得分:1)

如果您还没有,可能需要考虑启用WCF跟踪以确保服务器实际上正在调用客户端回调方法(callbackInstance.OnCallback();)。

作为参考,以下链接提供了WCF跟踪的概述:
http://msdn.microsoft.com/en-us/library/ms733025.aspx

答案 1 :(得分:1)

servicecontract和回调合约应该是单向的。链接的教程缺少。 因此,将操作合同更新为[OperationContract(IsOneWay = true)]