0

Я использую ретрансляцию для создания ChannelListener.ConnectionStatusBehavior and RelayBinding

BasicHttpRelayBinding relayBinding = new BasicHttpRelayBinding(); 
relayBinding.BuildChannelListener<IReplyChannel>(..., ...); 

Теперь я хочу добавить ConnectionStatusBehavior, так что я буду знать, если соединение используется канал онлайн или нет. Кто-нибудь знает, как это сделать?

ответ

2

Это, как мы делаем это

ConnectionStatusBehavior connectionStatus = new ConnectionStatusBehavior(); 
connectionStatus.Connecting += (s, e) => Logger.Info(System.DateTime.Now.TimeOfDay + " ConnectionStatus: Connecting, IsOnline: " + connectionStatus.IsOnline); 
connectionStatus.Offline += (s, e) => 
{ 
    Logger.Info(System.DateTime.Now.TimeOfDay + " ConnectionStatus: Offline"); 
    if (connectionStatus.LastError != null) 
    { 
    connectionStatus.Retry(); 
    Logger.Debug(connectionStatus.LastError.ToString()); 
    } 
}; 

connectionStatus.Online += (s, e) => Logger.Info(System.DateTime.Now.TimeOfDay + " ConnectionStatus: Online"); 

foreach (ServiceEndpoint endpoint in _serviceHost.Description.Endpoints) 
{ 
    if (endpoint.Address.Uri.AbsoluteUri.StartsWith("sb:")) 
    { 
    endpoint.Behaviors.Add(connectionStatus); 
    } 
}