¿Process performance counter is disabled?
Buenas,
hace tiempo que conozco y utilizo la función GetProcessesByName("NombreProceso") de la clase
System.Diagnostics.Process que me devuelve una matriz de objetos Process con los procesos que se están
ejecutando en estos momentos de nombre "NombreProceso".
Mi sorpresa ha sido cuando un cliente me ha llamado diciendome que le saltaba una "ventanita de error"
(una excepción) que indicaba literalmente que:
-Message: "Process performance counter is disabled, so the requested operation cannot be performed."
-Type: "System.InvalidOperationException"
-StackTrace:
"at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName)
at System.Diagnostics.Process.GetProcessesByName(String processName)".
Es decir, parece que un tal "contador de rendimiento de procesos" tiene que estar habilitado en la
máquina que se quiera usar la función GetProcessesByName("NombreProceso");
-¿alguien sabe donde se puede habilitar dicho contador?
-¿se puede hacer por código?, ¿como?
-¿en que sistemas operativos existe este contador o no tiene que ver nada con el sistema operativo?
¡AYUDA!
hace tiempo que conozco y utilizo la función GetProcessesByName("NombreProceso") de la clase
System.Diagnostics.Process que me devuelve una matriz de objetos Process con los procesos que se están
ejecutando en estos momentos de nombre "NombreProceso".
Mi sorpresa ha sido cuando un cliente me ha llamado diciendome que le saltaba una "ventanita de error"
(una excepción) que indicaba literalmente que:
-Message: "Process performance counter is disabled, so the requested operation cannot be performed."
-Type: "System.InvalidOperationException"
-StackTrace:
"at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName)
at System.Diagnostics.Process.GetProcessesByName(String processName)".
Es decir, parece que un tal "contador de rendimiento de procesos" tiene que estar habilitado en la
máquina que se quiera usar la función GetProcessesByName("NombreProceso");
-¿alguien sabe donde se puede habilitar dicho contador?
-¿se puede hacer por código?, ¿como?
-¿en que sistemas operativos existe este contador o no tiene que ver nada con el sistema operativo?
¡AYUDA!
