Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método EventLog.SourceExists (String)

 

Publicado: octubre de 2016

Determina si un origen de eventos está registrado en el equipo local.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

Public Shared Function SourceExists (
	source As String
) As Boolean

Parámetros

source
Type: System.String

Nombre del origen de eventos.

Valor devuelto

Type: System.Boolean

Es true si el origen de eventos está registrado en el equipo local; en caso contrario, es false.

Exception Condition
SecurityException

source se encontró no, pero no se podrían buscar algunos o todos los registros de eventos.

Utilice este método para determinar si existe un origen de eventos en el equipo local. Si desea determinar si existe un registro en el equipo local, utilice Exists.

Dado que este método obtiene acceso al registro, debe tener los permisos adecuados en el equipo local; de lo contrario, una SecurityException se inicia.

System_CAPS_noteNota

Para buscar un origen de eventos en Windows Vista y versiones posteriores o Windows Server 2003, debe tener privilegios administrativos.

El motivo de este requisito es que se deben buscar todos los registros de eventos, incluida la seguridad, para determinar si el origen del evento es único. A partir de Windows Vista, los usuarios no tienen permiso para tener acceso al registro de seguridad; por lo tanto, un SecurityException se produce.

A partir de Windows Vista, Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

System_CAPS_noteNota

Un servicio que se esté ejecutando en el LocalSystem cuenta no tiene los privilegios necesarios para ejecutar este método. La solución consiste en comprobar si existe el origen del evento en el ServiceInstaller, y si no existe, para crear el origen en el instalador.

Ya no puede proporcionar un nuevo origen el nombre de un origen existente en el mismo equipo, utilice este método antes de intentar llamar a CreateEventSource para garantizar que un origen con el nombre especificado por source no existe en el equipo local. El source parámetro no distingue mayúsculas de minúsculas.

En el ejemplo siguiente se crea el origen de MySource Si no existe ya y escribe una entrada en el registro de eventos MyNewLog.

Option Explicit
Option Strict
Imports System
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 ' Main
End Class ' MySample

EventLogPermission

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

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: