2013-10-16 138 views
0

嗨我需要創建wcf服務與回撥。因爲該服務需要更新Windows用戶界面進行長時間操作。你能幫我用適合wcf服務和客戶端的配置嗎?回撥配置wcf服務

回答

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();