繁体   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