簡體   English   中英

WCF回調通道中止異常

[英]WCF callback channel abort exception

我用WCF實現了發布者-訂閱者機制。

這就是我訂閱回調的方式:

public delegate void AsyncResponseEventHandler(AsyncResponse asyncResponse); 
public static event AsyncResponseEventHandler AsyncResponseEvent;       
public static IMyEvents Subscriber;        
public  void SubscribeEvent()        
{            
Subscriber = OperationContext.Current.GetCallbackChannel<IMyEvents>();            
AsyncResponseEvent += new AsyncResponseEventHandler (Subscriber.AsyncResponseCallBack);        
}         
public static void RaiseAsyncResponse(AsyncResponse asyncResponse)    
{         
   try 
           {                
        AsyncResponseEvent.Invoke(asyncResponse);
           }            
catch (Exception ex)  {throw;}    
}     

這也是MySubscriber類代碼:

     public class MySubscriber : IMyEvents
    {


 public void AsyncResponseCallBack(AsyncResponse asyncResponse)
        {

            AsyncResponseEventArgs e = new AsyncResponseEventArgs()
            {
                Response = asyncResponse
            };
            OnAsyncResponseReceived(this, e);

        }
    }

我使用RaiseAsyncResponse方法引發對客戶端的回調,

當服務主機是Windows服務並且我啟動服務並開始調試時,一切都第一次正常運行,但是當我停止客戶端應用程序並在不重新啟動Windows服務的情況下重新啟動調試時,我遇到了一個例外:通信對象, System.ServiceModel.Channels.ServiceChannel不能用於通信,因為它已中止...

為什么回調通道被中止? 請幫我... :(

因為“但是當我停止客戶端應用程序時”才是答案。 停止客戶端應用程序后,System.ServiceModel很快就會釋放該通道上的保留。 如果您終止了服務或客戶端,則無法將數據從服務發送至客戶端,反之亦然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM