c# - ServiceController shows incorrect MachineName -
i have following code
private datatable getservices(string[] servicenames) { datatable dt = new datatable("services"); dt.columns.add("machinename", typeof(string)); dt.columns.add("servicename", typeof(string)); dt.columns.add("servicestatus", typeof(string)); servicecontroller[] services = servicecontroller.getservices(); foreach (servicecontroller sctemp in services) { if (servicenames.contains(sctemp.displayname)) { dt.rows.add(sctemp.machinename, sctemp.displayname, sctemp.status); } } return dt; } it returns following
machinename,servicename,servicestatus
.,adobe flash player update service,stopped
.,application experience,running
.,application layer gateway service,stopped
.,application host helper service,running
sctemp.machinename returns .
how can return real computer name?
the "." indicates local computer. use real machinename can use property machinename of class environment.
to solve problem need add custom mapping if machinename of servicecontroller returns ".".
if (sctemp.machinename.equals(".")) { dt.rows.add(environment.machinename, sctemp.displayname, sctemp.status); } else { dt.rows.add(sctemp.machinename, sctemp.displayname, sctemp.status); }
Comments
Post a Comment