private WcfAppenderClient CreateProxyInstance() { EndpointAddress endpoint = new EndpointAddress(RemoteAddress); WSHttpBinding binding = new WSHttpBinding(SecurityMode); ; WcfAppenderClient client = new WcfAppenderClient(binding, endpoint); client.ClientCredentials.UserName.UserName = Username; client.ClientCredentials.UserName.Password = Password; return client; }
private void FlushQueue() { try { LoggingEventContainer[] container = new LoggingEventContainer[_eventQueue.Count]; LoggingEvent[] events = _eventQueue.ToArray(); for (int i = 0; i < events.Length; i++) { LoggingEvent loggingEvent = events[i]; container[i] = new LoggingEventContainer() { Domain = loggingEvent.Domain, Exception = loggingEvent.GetExceptionString(), Identity = loggingEvent.Identity, LogLevel = loggingEvent.Level.ToString(), LoggerName = loggingEvent.LoggerName, Message = loggingEvent.RenderedMessage, ThreadName = loggingEvent.ThreadName, Timestamp = loggingEvent.TimeStamp }; } ProxyInstance.AppendLoggingEvents(container); _eventQueue.Clear(); } catch (Exception ex) { Console.WriteLine(ex); } //a proxy can only fault once. an exception will cause the proxy to transition //to faulted state and we have to create a completely new instace of the proxy (done in the property) if (_proxyInstance != null && _proxyInstance.State == CommunicationState.Faulted) { _proxyInstance = null; } }