0

I am using relaybinding to create a ChannelListener.

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

Now I want to add ConnectionStatusBehavior so that I would know if the connection used by the channel is online or not. Does anyone have any idea how to do this?

an.it.professional
  • 121
  • 1
  • 2
  • 10

1 Answers1

3

This is how we do it

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);
  }
}
Sam Vanhoutte
  • 3,247
  • 27
  • 48