EventLog.SourceExists Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyhledá daný zdroj událostí v registru počítače.
Přetížení
SourceExists(String) |
Určuje, zda je zdroj událostí registrován v místním počítači. |
SourceExists(String, String) |
Určuje, zda je zdroj událostí registrován v zadaném počítači. |
SourceExists(String)
- Zdroj:
- EventLog.cs
- Zdroj:
- EventLog.cs
- Zdroj:
- EventLog.cs
Určuje, zda je zdroj událostí registrován v místním počítači.
public:
static bool SourceExists(System::String ^ source);
public static bool SourceExists (string source);
static member SourceExists : string -> bool
Public Shared Function SourceExists (source As String) As Boolean
Parametry
- source
- String
Název zdroje události.
Návraty
true
pokud je zdroj událostí zaregistrovaný v místním počítači; v opačném případě . false
Výjimky
source
nebyl nalezen, ale některé nebo všechny protokoly událostí nelze prohledat.
Příklady
Následující příklad vytvoří zdroj MySource
, pokud ještě neexistuje, a zapíše položku do protokolu MyNewLog
událostí .
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
// Create the source, if it does not already exist.
if ( !EventLog::SourceExists( "MySource" ) )
{
EventLog::CreateEventSource( "MySource", "MyNewLog" );
Console::WriteLine( "CreatingEventSource" );
}
// Create an EventLog instance and assign its source.
EventLog^ myLog = gcnew 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." );
}
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
Poznámky
Tuto metodu použijte k určení, zda zdroj událostí existuje v místním počítači. Pokud chcete zjistit, jestli v místním počítači existuje protokol, použijte Exists.
Vzhledem k tomu, že tato metoda přistupuje k registru, musíte mít odpovídající oprávnění registru na místním počítači; SecurityException v opačném případě bude vyvolán.
Poznámka
Chcete-li vyhledat zdroj událostí v systému Windows Vista a novějších nebo Windows Server 2003, musíte mít oprávnění správce.
Důvodem tohoto požadavku je, že všechny protokoly událostí, včetně zabezpečení, musí být prohledány, aby se zjistilo, jestli je zdroj událostí jedinečný. Počínaje systémem Windows Vista nemají uživatelé oprávnění k přístupu k protokolu zabezpečení. SecurityException proto je vyvolán.
Počínaje systémem Windows Vista určuje řízení uživatelských účtů (UAC) oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.
Poznámka
Služba, která se spouští pod tímto účtem LocalSystem , nemá oprávnění potřebná ke spuštění této metody. Řešením je zkontrolovat, jestli zdroj události existuje v ServiceInstallera pokud neexistuje, vytvořit zdroj v instalačním programu.
Vzhledem k tomu, že nelze novému zdroji dát název existujícího zdroje ve stejném počítači, použijte tuto metodu před pokusem o volání CreateEventSource , aby se zajistilo, že zdroj s názvem zadaným source
v místním počítači již neexistuje. V source
parametru se nerozlišuje velká a malá písmena.
Viz také
Platí pro
SourceExists(String, String)
- Zdroj:
- EventLog.cs
- Zdroj:
- EventLog.cs
- Zdroj:
- EventLog.cs
Určuje, zda je zdroj událostí registrován v zadaném počítači.
public:
static bool SourceExists(System::String ^ source, System::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
Parametry
- source
- String
Název zdroje události.
- machineName
- String
Název počítače, na kterém se má hledat, nebo "." pro místní počítač.
Návraty
true
pokud je zdroj událostí zaregistrovaný na daném počítači; v opačném případě . false
Výjimky
machineName
je neplatný název počítače.
source
nebyl nalezen, ale některé nebo všechny protokoly událostí nelze prohledat.
Příklady
Následující příklad vytvoří zdroj MySource
v počítači MyServer
a zapíše položku do protokolu MyNewLog
událostí .
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
// Create the source, if it does not already exist.
if ( !EventLog::SourceExists( "MySource", "MyServer" ) )
{
EventLog::CreateEventSource( "MySource", "MyNewLog", "MyServer" );
Console::WriteLine( "CreatingEventSource" );
}
// Create an EventLog instance and assign its source.
EventLog^ myLog = gcnew 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." );
}
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
Poznámky
Tuto metodu použijte k určení, zda v počítači určeném parametrem machineName
existuje zdroj událostí. Pokud chcete zjistit, jestli v zadaném počítači existuje protokol, použijte Exists.
Vzhledem k tomu, že tato metoda přistupuje k registru, musíte mít příslušná oprávnění registru na daném serveru; SecurityException v opačném případě bude vyvolán.
Poznámka
Chcete-li vyhledat zdroj událostí v systému Windows Vista a novějších nebo Windows Server 2003, musíte mít oprávnění správce.
Důvodem tohoto požadavku je, že všechny protokoly událostí, včetně zabezpečení, musí být prohledány, aby se zjistilo, jestli je zdroj událostí jedinečný. Počínaje systémem Windows Vista nemají uživatelé oprávnění k přístupu k protokolu zabezpečení. SecurityException proto je vyvolán.
Počínaje systémem Windows Vista určuje řízení uživatelských účtů (UAC) oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.
Poznámka
Služba, která se spouští pod tímto účtem LocalSystem , nemá oprávnění potřebná ke spuštění této metody. Řešením je zkontrolovat, jestli zdroj události existuje v ServiceInstallera pokud neexistuje, vytvořit zdroj v instalačním programu.
Vzhledem k tomu, že nelze novému zdroji dát název existujícího zdroje ve stejném počítači, použijte tuto metodu před pokusem o volání CreateEventSource , abyste zajistili, že zdroj s názvem zadaným source
v počítači již neexistuje. V source
parametrech a machineName
se nerozlišují velká a malá písmena.
SourceExistsstatic
je metoda, takže ji lze volat v samotné třídě. Není nutné vytvořit instanci EventLog pro volání SourceExists.