///<summary> /// Creates a publisher process ///</summary> public void ExecutePublisherCommand( String processName, String siteName, String processURL, String brokerURL) { lock (stateList) { stateList.Add(processName, ProcessState.OFFLINE); String arguments = processName + " " + siteName + " " + processURL + " " + brokerURL; Process publisher = Process.Start(PUBLISHERFILE, arguments); publisher.Attach(); //DebugTools Thread.Sleep(1); try { IPublisherService processService = (IPublisherService)Activator.GetObject( typeof(IPublisherService), processURL); processService.ConnectToPuppetMaster(serviceURL); publisherTable.Add(processName, processService); } catch (Exception) { throw; } stateList[processName] = ProcessState.UNFROZEN; } }