EventLog.SourceExists Metodo

Definizione

Cerca nel Registro di sistema di un computer una determinata origine evento.

Overload

Nome Descrizione
SourceExists(String)

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

SourceExists(String, String)

Determina se un'origine evento è registrata in un computer specificato.

SourceExists(String)

Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs

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

public:
 static bool SourceExists(System::String ^ source);
public static bool SourceExists(string? source);
public static bool SourceExists(string source);
static member SourceExists : string -> bool
Public Shared Function SourceExists (source As String) As Boolean

Parametri

source
String

Nome dell'origine evento.

Valori restituiti

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

Eccezioni

source non è stato trovato, ma non è stato possibile eseguire ricerche in alcuni o in tutti i registri eventi.

Esempio

L'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.");
    }
}
Option Explicit
Option Strict
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource") Then
            EventLog.CreateEventSource("MySource", "MyNewLog")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As 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.")
    End Sub
End Class

Commenti

Utilizzare questo metodo per determinare se nel computer locale è presente un'origine evento. Se si desidera determinare se esiste un log nel computer locale, utilizzare Exists.

Poiché questo metodo accede al Registro di sistema, è necessario disporre delle autorizzazioni appropriate del Registro di sistema nel computer locale; in caso contrario, verrà generata un'eccezione SecurityException .

Note

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

Il motivo di questo requisito è che tutti i registri eventi, inclusa la sicurezza, devono essere cercati per determinare se l'origine evento è univoca. A partire da Windows Vista, gli utenti non hanno l'autorizzazione per accedere al log di sicurezza; pertanto, viene generata un'eccezione SecurityException .

A partire da Windows Vista, Controllo account utente determina i privilegi di un utente. Se si è membri del gruppo Administrators predefinito, vengono assegnati due token di accesso in fase di esecuzione: un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, si è nel ruolo utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. A tale scopo, è possibile avviare un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando che si vuole eseguire come amministratore.

Note

Un servizio in esecuzione con l'account LocalSystem non dispone dei privilegi necessari per eseguire questo metodo. La soluzione consiste nel verificare se l'origine evento esiste in ServiceInstallere, se non esiste, per creare l'origine nel programma di installazione.

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

Vedi anche

Si applica a

SourceExists(String, String)

Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs
Origine:
EventLog.cs

Determina se un'origine evento è registrata in un computer specificato.

public:
 static bool SourceExists(System::String ^ source, System::String ^ machineName);
public static bool SourceExists(string? source, string machineName);
public static bool SourceExists(string source, string machineName);
static member SourceExists : string * string -> bool
Public Shared Function SourceExists (source As String, machineName As String) As Boolean

Parametri

source
String

Nome dell'origine evento.

machineName
String

Nome del computer in cui cercare o "." per il computer locale.

Valori restituiti

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

Eccezioni

machineName è un nome computer non valido.

source non è stato trovato, ma non è stato possibile eseguire ricerche in alcuni o in tutti i registri eventi.

Esempio

L'esempio seguente crea l'origine MySource nel computer MyServere 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", "MyServer"))
        {
            // 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", "MyServer");
            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.");
    }
}
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As 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.")
    End Sub
End Class

Commenti

Utilizzare questo metodo per determinare se nel computer specificato dal machineName parametro esiste un'origine evento. Se si desidera determinare se esiste un log nel computer specificato, utilizzare Exists.

Poiché questo metodo accede al Registro di sistema, è necessario disporre delle autorizzazioni appropriate del Registro di sistema per il server specificato; in caso contrario, verrà generata un'eccezione SecurityException .

Note

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

Il motivo di questo requisito è che tutti i registri eventi, inclusa la sicurezza, devono essere cercati per determinare se l'origine evento è univoca. A partire da Windows Vista, gli utenti non hanno l'autorizzazione per accedere al log di sicurezza; pertanto, viene generata un'eccezione SecurityException .

A partire da Windows Vista, Controllo account utente determina i privilegi di un utente. Se si è membri del gruppo Administrators predefinito, vengono assegnati due token di accesso in fase di esecuzione: un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, si è nel ruolo utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. A tale scopo, è possibile avviare un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando che si vuole eseguire come amministratore.

Note

Un servizio in esecuzione con l'account LocalSystem non dispone dei privilegi necessari per eseguire questo metodo. La soluzione consiste nel verificare se l'origine evento esiste in ServiceInstallere, se non esiste, per creare l'origine nel programma di installazione.

Poiché non è possibile assegnare a una nuova origine il nome di un'origine esistente nello stesso computer, utilizzare questo metodo prima di tentare di chiamare CreateEventSource per assicurarsi che un'origine con il nome specificato da source non esista già nel computer. I source parametri e non fanno distinzione tra maiuscole e machineName minuscole.

SourceExists è un static metodo, quindi può essere chiamato sulla classe stessa. Non è necessario creare un'istanza di EventLog per chiamare SourceExists.

Vedi anche

Si applica a