private void Register_RegisterClicked(object sender, RoutedEventArgs e) { NetTcpBinding serviceBinding = new NetTcpBinding(SecurityMode.None); serviceBinding.ReceiveTimeout = TimeSpan.MaxValue; serviceBinding.SendTimeout = TimeSpan.MaxValue; proxy = DuplexChannelFactory<ITableService>.CreateChannel(this, serviceBinding, new EndpointAddress(Properties.Settings.Default.ServerAddress)); TcpTransportBindingElement transport = new TcpTransportBindingElement(); transport.MaxReceivedMessageSize = long.MaxValue; transport.MaxBufferSize = int.MaxValue; transport.MaxBufferPoolSize = long.MaxValue; transport.TransferMode = TransferMode.Streamed; BinaryMessageEncodingBindingElement encoder = new BinaryMessageEncodingBindingElement(); CustomBinding fileBinding = new CustomBinding(encoder, transport); fileBinding.ReceiveTimeout = TimeSpan.MaxValue; fileBinding.SendTimeout = TimeSpan.MaxValue; fileProxy = ChannelFactory<IFileDownloadService>.CreateChannel(fileBinding, new EndpointAddress(Properties.Settings.Default.FileServerAddress)); try { DateTime serverTime = proxy.GetTime(); OffsetDateTime.Difference = serverTime - DateTime.UtcNow; proxy.Register(currentUser); } catch (FaultException ex) { MessageBox.Show(ex.Message); } catch (EndpointNotFoundException) { MessageBox.Show("Could not connect to the table"); } finally { Register r = (Register)sender; r.RegisterButton.Visibility = Visibility.Visible; r.Spinner.Visibility = Visibility.Collapsed; } }