2013-08-23 24 views
12

Posso avviare o interrompere il servizio in remoto dal progetto .net.Come riavviare il servizio in remoto?

ConnectionOptions options = new ConnectionOptions(); 
options.Username = @"192.168.36.22\test"; 
options.Password = "test"; 
ManagementScope scope = new ManagementScope(@"\\192.168.36.22\root\cimv2", options); 
scope.Connect(); 


ManagementOperationObserver Stop = new ManagementOperationObserver(); 
Stop.Completed += new CompletedEventHandler(Stop_CallBack); 
try 
{ 
    string NameServices = "ArcGIS Server"; 
    WqlObjectQuery query = new WqlObjectQuery("SELECT * FROM Win32_Service WHERE Name=\"" + NameServices + "\""); 
    ManagementObjectSearcher find = new ManagementObjectSearcher(scope, query); 
    foreach (ManagementObject spooler in find.Get()) 
    { 
     spooler.InvokeMethod("StopService", new object[] { }); 
     spooler.InvokeMethod(Start, "StopService", new object[] { }); 
    } 
} 
.... 

Come posso riavviare questo servizio?

+0

È possibile utilizzare stop e quindi avviare. È lo stesso. – FelProNet

risposta

16

è possibile utilizzare la classe ServiceController in questo modo:

ServiceController sc = new ServiceController("ArcGIS Server", "192.168.36.22"); 

sc.Start(); 
sc.Stop(); 

Ciò consente di risparmiare dover scrivere tutto ciò che il codice di interagire con WMI. Nota per usare la classe ServiceController, dovrai aggiungere un riferimento all'assembly System.ServiceProcess.

+0

Posso riavviare il servizio usando ManagementObject? – novicegis

+0

Sì, se si desidera utilizzare ManagementObject, è sufficiente passare "StartService" a InvokeMethod –

+1

Quando utilizzo ServiceController, ho l'eccezione "Impossibile aprire Gestione controllo servizi sul computer" MAPSERVER ". Questa operazione potrebbe richiedere altri privilegi" – novicegis

-3

Mi sono imbattuto in un problema simile quando ho provato a connettermi, basta aggiungere il nome del computer come amministratore nel gruppo "utenti" del computer di destinazione e sarete in grado di recuperare i dati.