我正在实施此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
。
我想知道是否有一种简单的方法可以调试此行为。
答案 0 :(得分:1)
如果您还没有,可能需要考虑启用WCF跟踪以确保服务器实际上正在调用客户端回调方法(callbackInstance.OnCallback();)。
作为参考,以下链接提供了WCF跟踪的概述:
http://msdn.microsoft.com/en-us/library/ms733025.aspx
答案 1 :(得分:1)
servicecontract和回调合约应该是单向的。链接的教程缺少。
因此,将操作合同更新为[OperationContract(IsOneWay = true)]