Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo PerformanceCounterCategory.CounterExists (String, String, String)

 

Data di pubblicazione: ottobre 2016

Determina se il contatore specificato è registrato per la categoria specificata in un computer remoto.

Spazio dei nomi:   System.Diagnostics
Assembly:  System (in System.dll)

public static bool CounterExists(
	string counterName,
	string categoryName,
	string machineName
)

Parametri

counterName
Type: System.String

Il nome del contatore delle prestazioni da cercare.

categoryName
Type: System.String

Il nome di categoria di contatori delle prestazioni, o oggetto prestazioni, a cui è associato il contatore delle prestazioni specificato.

machineName
Type: System.String

Il nome del computer in cui esistano la categoria del contatore delle prestazioni e i contatori associati.

Valore restituito

Type: System.Boolean

true, se il contatore è registrato nella categoria specificata nel computer specificato. in caso contrario, false.

Exception Condition
ArgumentNullException

L'elemento categoryName è null.

-oppure-

L'elemento counterName è null.

ArgumentException

Il categoryName è una stringa vuota ("").

-oppure-

Il machineName non è valido.

InvalidOperationException

Il nome della categoria non esiste.

Win32Exception

Impossibile chiamare un'API di sistema sottostante.

UnauthorizedAccessException

Il codice che è in esecuzione senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.

System_CAPS_noteNota

Per leggere i contatori delle prestazioni in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo Performance Monitor Users o disporre di privilegi amministrativi.

Per evitare la necessità di elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungersi al gruppo Performance Monitor Users.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è innanzitutto necessario elevare i privilegi da utente standard ad amministratore. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.

Esempio di codice seguente determina se un PerformanceCounter esiste. Ottiene un nome di categoria, nome contatore e nome del computer dalla riga di comando, se vengono loro assegnati. Vengono utilizzati gli overload statici del CounterExists metodo per determinare se l'oggetto specificato PerformanceCounter nome presente nella PerformanceCounterCategory. L'overload è selezionata in base se viene fornito un nome di computer.

public static void Main(string[] args)
{
    string categoryName = "";
    string counterName = "";
    string machineName = "";
    bool objectExists = false;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        machineName = args[2]=="."? "": args[2];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    try
    {
        // Check whether the specified counter exists.
        // Use the static forms of the CounterExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName, machineName);
        }

    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "counter \"{0}\" in category \"{1}\" on " + 
            (machineName.Length>0? "computer \"{2}\".": "this computer.") + "\n" + 
            ex.Message, counterName, categoryName, machineName);
        return;
    }

    // Tell the user whether the counter exists.
    Console.WriteLine("Counter \"{0}\" "+ (objectExists? "exists": "does not exist") + 
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), 
        counterName, categoryName, machineName);
}

PerformanceCounterPermission

for reading performance counter categories. Associated enumeration: F:System.Diagnostics.PerformanceCounterPermissionAccess.Read.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: