Hallo zusammen,
ich habe einen Dienst geschrieben und die eigentliche Funktion funktioniert auch. Jetzt wollte ich nur noch, dass ganze Abrunden in dem ich die Log Eintrage in ein extra Protokoll statt wie bisher in das Protokoll "Anwendung" schreibe. Ich habe das ganze einem Testprojekt getestet, da funktiert es einwandfrei. Doch wenn ich den Code in den Service einbinde bekomme ich die Fehlermeldung:
Ich weiß, das es ein Sicherheitsproblem ist. Aber habe leider keine Ahnung wie ich das beheben kann. Kann mir wer Weiterhelfen?
Viele Grüße Isabelle
PS: Hier noch mein Code von meinem TestProjekt. Hier funktioniert es.
Und hier den Code aus meinem Service von OnStart:
ich habe einen Dienst geschrieben und die eigentliche Funktion funktioniert auch. Jetzt wollte ich nur noch, dass ganze Abrunden in dem ich die Log Eintrage in ein extra Protokoll statt wie bisher in das Protokoll "Anwendung" schreibe. Ich habe das ganze einem Testprojekt getestet, da funktiert es einwandfrei. Doch wenn ich den Code in den Service einbinde bekomme ich die Fehlermeldung:
Die Quelle wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden. Protokolle, auf die kein Zugriff möglich war: Security.
Ich weiß, das es ein Sicherheitsproblem ist. Aber habe leider keine Ahnung wie ich das beheben kann. Kann mir wer Weiterhelfen?
Viele Grüße Isabelle
PS: Hier noch mein Code von meinem TestProjekt. Hier funktioniert es.
Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Eigenes Protokoll erstellen
if (!EventLog.SourceExists("Sage_PicklisteLog"))
{
EventSourceCreationData mySource = new EventSourceCreationData(
"Sage_PicklisteLog", "PicklisteLog");
mySource.MachineName = ".";
EventLog.CreateEventSource(mySource);
}
else
{
EventLog.DeleteEventSource("Sage_PicklisteLog");
EventLog.Delete("PicklisteLog");
}
}
}
}
Und hier den Code aus meinem Service von OnStart:
Code:
protected override void OnStart(string[] args)
{
try
{
if (!EventLog.SourceExists("Sage_PicklisteLog"))
{
EventSourceCreationData mySource = new EventSourceCreationData(
"Sage_PicklisteLog", "PicklisteLog");
mySource.MachineName = ".";
EventLog.CreateEventSource(mySource);
}
}
catch (Exception ex)
{
EventLog.WriteEntry("Fehler: " + ex.Message);
}
//Anmeldedaten setzen
m_Server = @"Server";
m_Database = "Database";
//LogIn überprüfen
if (CheckLogIn())
{
//Log Eintrag
EventLog.WriteEntry(DateTime.Now.TimeOfDay +
": Login erfolgreich");
}
else
{
//Log Eintrag
EventLog.WriteEntry(DateTime.Now.TimeOfDay +
": Login fehlgeschlagen");
return;
}
System.Timers.Timer aTimer = new System.Timers.Timer();
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 5 min (300000 milliseconds).
aTimer.Interval = 300000;
aTimer.Enabled = true;
// Keep the timer alive until the end of Main.
GC.KeepAlive(aTimer);
}