EventLog.SourceExists Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Söker i en dators register efter en viss händelsekälla.
Överlagringar
| Name | Description |
|---|---|
| SourceExists(String) |
Avgör om en händelsekälla är registrerad på den lokala datorn. |
| SourceExists(String, String) |
Avgör om en händelsekälla är registrerad på en angiven dator. |
SourceExists(String)
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
Avgör om en händelsekälla är registrerad på den lokala datorn.
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
Parametrar
- source
- String
Namnet på händelsekällan.
Returer
trueom händelsekällan är registrerad på den lokala datorn. annars . false
Undantag
source hittades inte, men vissa eller alla händelseloggar kunde inte sökas igenom.
Exempel
I följande exempel skapas källan MySource om den inte redan finns och skriver en post till händelseloggen 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
Kommentarer
Använd den här metoden för att avgöra om en händelsekälla finns på den lokala datorn. Om du vill ta reda på om det finns en logg på den lokala datorn använder du Exists.
Eftersom den här metoden kommer åt registret måste du ha rätt registerbehörigheter på den lokala datorn. annars kommer en SecurityException att kastas.
Note
Om du vill söka efter en händelsekälla i Windows Vista och senare eller Windows Server 2003 måste du ha administratörsbehörighet.
Orsaken till det här kravet är att alla händelseloggar, inklusive säkerhet, måste sökas igenom för att avgöra om händelsekällan är unik. Från och med Windows Vista har användarna inte behörighet att komma åt säkerhetsloggen. Därför utlöses en SecurityException.
Från och med Windows Vista avgör UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.
Note
En tjänst som körs under LocalSystem kontot har inte de behörigheter som krävs för att köra den här metoden. Lösningen är att kontrollera om händelsekällan finns i ServiceInstaller, och om den inte finns, för att skapa källan i installationsprogrammet.
Eftersom du inte kan ge en ny källa namnet på en befintlig källa på samma dator använder du den här metoden innan du försöker anropa CreateEventSource för att säkerställa att en källa med det namn som anges av source inte redan finns på den lokala datorn. Parametern source är inte skiftlägeskänslig.
Se även
Gäller för
SourceExists(String, String)
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
- Källa:
- EventLog.cs
Avgör om en händelsekälla är registrerad på en angiven dator.
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
Parametrar
- source
- String
Namnet på händelsekällan.
- machineName
- String
Namnet på den dator som ska visas, eller "" för den lokala datorn.
Returer
trueom händelsekällan är registrerad på den angivna datorn. annars . false
Undantag
machineName är ett ogiltigt datornamn.
source hittades inte, men vissa eller alla händelseloggar kunde inte sökas igenom.
Exempel
I följande exempel skapas källan MySource på datorn MyServeroch en post skrivs till händelseloggen 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
Kommentarer
Använd den här metoden för att avgöra om en händelsekälla finns på den dator som anges av parametern machineName . Om du vill ta reda på om det finns en logg på den angivna datorn använder du Exists.
Eftersom den här metoden kommer åt registret måste du ha rätt registerbehörigheter på den angivna servern. annars kommer en SecurityException att kastas.
Note
Om du vill söka efter en händelsekälla i Windows Vista och senare eller Windows Server 2003 måste du ha administratörsbehörighet.
Orsaken till det här kravet är att alla händelseloggar, inklusive säkerhet, måste sökas igenom för att avgöra om händelsekällan är unik. Från och med Windows Vista har användarna inte behörighet att komma åt säkerhetsloggen. Därför utlöses en SecurityException.
Från och med Windows Vista avgör UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.
Note
En tjänst som körs under LocalSystem kontot har inte de behörigheter som krävs för att köra den här metoden. Lösningen är att kontrollera om händelsekällan finns i ServiceInstaller, och om den inte finns, för att skapa källan i installationsprogrammet.
Eftersom du inte kan ge en ny källa namnet på en befintlig källa på samma dator använder du den här metoden innan du försöker anropa CreateEventSource för att säkerställa att en källa med det namn som anges av source inte redan finns på datorn. Parametrarna source och machineName är inte skiftlägeskänsliga.
SourceExists är en static metod, så den kan anropas på själva klassen. Det är inte nödvändigt att skapa en instans av EventLog för att anropa SourceExists.