您好我需要使用回调创建wcf服务。因为服务需要更新Windows UI以进行长时间操作。你能帮我找到适合wcf服务和客户端的配置吗?
答案 0 :(得分:1)
在web.xml中配置为wsdualhttpbinding。因为在使用回调方法时,http是一种无状态协议,所以你需要使用wsdualhttpbinding inturn来调用在客户端实现的方法。
使用回调方法定义接口,并在客户端实现该方法。
定义和配置回调合同:
public interface IMyContractCallback
{
[OperationContract]
void OnCallback();
}
[ServiceContract(CallbackContract = typeof(IMyContractCallback))]
public interface IMyContract
{
[OperationContract()]
void MyMethod();
}
客户端回调设置:
class MyServiceClient:DuplexClientBase,IMyContract
{
public MyServiceClient(InstanceContext callbackCntx)
: base(callbackCntx)
{
}
public void MyMethod()
{
base.Channel.MyMethod();
}
}
服务端回调调用:
IMyContractCallback
callbackInstance=OperationContext.Current.GetCallbackChannel();
callbackInstance.OnCallback();