Common code to open and close a DocumentConverterServiceClient
Below is the common code used to open and close a DocumentConverterServiceClient
:
/// <summary> /// Configure the bindings and endpoints and open the service using the specified address. /// </summary> /// <param name="address">URL of the endpoint.</param> /// <returns>An instance of the web service.</returns> public static DocumentConverterServiceClient OpenService(string address) { DocumentConverterServiceClient client = null; try { BasicHttpBinding binding = new BasicHttpBinding(); // Use standard Windows security. binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows; // Increase the client timeout to deal with (very) long running requests. binding.SendTimeout = TimeSpan.FromMinutes(120); binding.ReceiveTimeout = TimeSpan.FromMinutes(120); // Set the maximum document size to 50MB. binding.MaxReceivedMessageSize = 50 * 1024 * 1024; binding.ReaderQuotas.MaxArrayLength = 50 * 1024 * 1024; binding.ReaderQuotas.MaxStringContentLength = 50 * 1024 * 1024; EndpointAddress epa = new EndpointAddress(new Uri(address)); client = new DocumentConverterServiceClient(binding, epa); client.OpenAsync(); return client; } catch (Exception) { CloseService(client); throw; } } /// <summary> /// Check if the client is open and then close it. /// </summary> /// <param name="client">The client to close.</param> public static void CloseService(DocumentConverterServiceClient client) { if (client != null && client.State == CommunicationState.Opened) client.CloseAsync().GetAwaiter().GetResult(); }