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 EventLog.SourceExists (String)

 

Data di pubblicazione: ottobre 2016

Determina se un'origine eventi è registrata nel computer locale.

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

public static bool SourceExists(
	string source
)

Parametri

source
Type: System.String

Nome dell'origine evento.

Valore restituito

Type: System.Boolean

true se l'origine eventi è registrata nel computer locale; in caso contrario, false.

Exception Condition
SecurityException

source non è stato trovato, ma non è possibile cercare alcuni o tutti i registri eventi.

Utilizzare questo metodo per determinare la presenza di un'origine eventi nel computer locale. Se si desidera determinare l'esistenza di un log nel computer locale, utilizzare Exists.

Poiché questo metodo accede al Registro di sistema, è necessario disporre di autorizzazioni adeguate sul computer locale. in caso contrario, un SecurityException verrà generata.

System_CAPS_noteNota

Per cercare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre dei privilegi di amministratore.

Il motivo per questo requisito è che tutti i registri eventi, inclusa la sicurezza, è necessario eseguire la ricerca per determinare se l'origine evento è univoco. A partire da Windows Vista, gli utenti si dispongano dell'autorizzazione per accedere al Registro di sicurezza. Pertanto, un SecurityException viene generata un'eccezione.

A partire da Windows Vista, controllo Account utente (UAC) determina i privilegi di un 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.

System_CAPS_noteNota

Un servizio in esecuzione con il LocalSystem account non dispone dei privilegi necessari per eseguire questo metodo. La soluzione consiste nel verificare se l'origine eventi è presente nel ServiceInstaller, e se non esiste, per creare l'origine del programma di installazione.

Poiché non è possibile attribuire a una nuova origine il nome di un'origine esistente nello stesso computer, utilizzare questo metodo prima di chiamare CreateEventSource per garantire che un'origine con il nome specificato da source non esiste già nel computer locale. Il source parametro non è tra maiuscole e minuscole.

Nell'esempio seguente crea l'origine MySource Se non esiste già e scrive una voce nel registro eventi MyNewLog.

using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");

        Console.WriteLine("Message written to event log.");                                                                        
    }
}

EventLogPermission

for writing the event log information on the computer. Associated enumeration: F:System.Diagnostics.EventLogPermissionAccess.Write

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