嗨,我需要创建带有回调的 wcf 服务。因为服务需要更新windows UI才能长时间运行。你能帮我配置合适的 wcf 服务和客户端吗?
问问题
132 次
1 回答
1
在 web.xml 中配置为 wsdualhttpbinding。因为在使用回调方法时,http 是无状态协议,因此您需要依次使用 wsdualhttpbinding 来调用在客户端实现的方法。
使用回调方法定义接口并在客户端实现该方法。
定义和配置回调合约:
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();
于 2013-10-16T08:02:20.060 回答