public WindowsServiceClient(string connectionString) { // Initialize status cache members. string statusBufferSize; if (connectionString.ParseKeyValuePairs().TryGetValue("statusBufferSize", out statusBufferSize)) m_statusBufferSize = int.Parse(statusBufferSize); else m_statusBufferSize = 8192; m_cachedStatus = string.Empty; // Initialize remoting client socket. m_remotingClient = new TcpClient(); m_remotingClient.ConnectionString = connectionString; m_remotingClient.SharedSecret = "openPDC"; m_remotingClient.Handshake = true; m_remotingClient.PayloadAware = true; m_remotingClient.MaxConnectionAttempts = -1; // Initialize windows service client. m_clientHelper = new ClientHelper(); m_clientHelper.RemotingClient = m_remotingClient; m_clientHelper.ReceivedServiceUpdate += ClientHelper_ReceivedServiceUpdate; }
/// <summary> /// Creates an instance of <see cref="WindowsServiceClient"/>. /// </summary> /// <param name="connectionString">Connection information such as server ip address and port where windows service is running.</param> public WindowsServiceClient(string connectionString) { // Initialize status cache members. Dictionary<string, string> settings = connectionString.ParseKeyValuePairs(); string setting; if (settings.TryGetValue("statusBufferSize", out setting) && !string.IsNullOrWhiteSpace(setting)) m_statusBufferSize = int.Parse(setting); else m_statusBufferSize = 8192; m_cachedStatus = string.Empty; // Initialize remoting client socket. m_remotingClient = new TcpClient(); m_remotingClient.ConnectionString = connectionString; // See if user wants to connect to remote service using integrated security if (settings.TryGetValue("integratedSecurity", out setting) && !string.IsNullOrWhiteSpace(setting)) m_remotingClient.IntegratedSecurity = setting.ParseBoolean(); m_remotingClient.PayloadAware = true; m_remotingClient.MaxConnectionAttempts = -1; // Initialize windows service client. m_clientHelper = new ClientHelper(); m_clientHelper.RemotingClient = m_remotingClient; m_clientHelper.ReceivedServiceUpdate += ClientHelper_ReceivedServiceUpdate; }
/// <summary> /// Releases the unmanaged resources used by the <see cref="WindowsServiceClient"/> object and optionally releases the managed resources. /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (!m_disposed) { try { if (disposing) { if (m_clientHelper != null) m_clientHelper.ReceivedServiceUpdate -= ClientHelper_ReceivedServiceUpdate; m_clientHelper = null; if (m_remotingClient != null) { m_remotingClient.MaxConnectionAttempts = 0; if (m_remotingClient.CurrentState == ClientState.Connected) m_remotingClient.Disconnect(); m_remotingClient.Dispose(); } m_remotingClient = null; } } finally { m_disposed = true; // Prevent duplicate dispose. } } }