tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1656
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    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:

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    
    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);
            }
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  2. #2
    freakbrother freakbrother ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Ort
    Ostmanien
    Beiträge
    33
    Hallo!
    Du hast ja die Möglichkeit den Dienst, wenn er installiert ist unter einem bestimmten Anmeldekonto laufen zu lassen.
    Versuche testweise unter Computerverwaltung -- Dienste -- *deinDienst* das Sys - admin Konto mit dem Pwd einzutragen und auszuführen.
    Wenn das klappt versuche den Dienst mit dem Lokalen_Dienst - Konto auszuführen.
    Sollte dies auch klappen, bleib beim Lokalen Dienst Konto.
     

  3. #3
    Mel_One Mel_One ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Ort
    Zürich (Zürich)
    Beiträge
    167
    Hm, ich grab das Thema mal aus, weil es so schön in meine Fehlermeldung reinpasst. Meine Meldung ist ein wenig anders:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    
    Microsoft (R) .NET Framework-Installationsprogramm, Version 2.0.50727.4927
    Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.
     
     
    Eine transaktive Installation wird ausgeführt.
     
    Die Installationsphase wird gestartet.
    Die Protokolldatei enthält den Fortschritt der Assembly C:\Test\MasterScheduler.exe.
    Die Datei befindet sich in C:\Test\MasterScheduler.InstallLog.
    Assembly C:\Test\MasterScheduler.exe wird installiert.
    Betroffene Parameter:
       assemblypath = C:\Test\MasterScheduler.exe
       logfile = C:\Test\MasterScheduler.InstallLog
       logtoconsole =
     
    Während der Installationsphase ist eine Ausnahme aufgetreten.
    System.ComponentModel.Win32Exception: Zugriff verweigert
     
    Die Rollbackphase der Installation wird gestartet.
    Die Protokolldatei enthält den Fortschritt der Assembly C:\Test\MasterScheduler.exe.
    Die Datei befindet sich in C:\MasterScheduler.InstallLog.
    Assembly C:\MasterScheduler.exe wird zurückgesetzt.
    Betroffene Parameter:
       assemblypath = C:\Test\MasterScheduler.exe
       logfile = C:\Test\MasterScheduler.InstallLog
       logtoconsole =
    Während der Rollbackphase des Installers System.ServiceProcess.ServiceProcessIns
    taller ist eine Ausnahme aufgetreten.
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinst
    anz festgelegt.
    Während der Rollbackphase der Installation ist eine Ausnahme aufgetreten. Diese
    Ausnahme wird ignoriert, und der Rollback wird fortgesetzt. Der ursprüngliche Zu
    stand des Computers wird jedoch möglicherweise nicht vollständig wiederhergestel
    lt, nachdem der Rollback beendet ist.
     
    Die Rollbackphase wurde erfolgreich abgeschlossen.
     
    Die transaktive Installation ist abgeschlossen.
    Fehler bei der Installation, und der Rollback wurde ausgeführt.

    Ich führe das ganze mit dem Administrator-Konto unter einem Windows 7 durch. Dass da ein Recheproblem ist, schockiert mich schon ein wenig. Weiss jemand, mit welchen Berechtigungen man einen Service unter Windows 7 installieren muss?
    Danke und Gruss...
     
    "Wenn Sie mich suchen, ich halte mich in der Nähe des Wahnsinns auf, genauer gesagt auf der schmalen Linie zwischen Wahnsinn und Panik, gleich um die Ecke von Todesangst, nicht weit weg von Irrwitz und Idiotie!"
    -- Bernd das Brot

  4. #4
    Mel_One Mel_One ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Ort
    Zürich (Zürich)
    Beiträge
    167
    Okay, habs inzwischen geschafft, dass sich die Fehlermeldung verschiebt. Für das Berechtigungsproblem oben: Einfach die Konsole, in der das Installutil aufgerufen wird, mit Administrationsrechen starten. Allerdings habe ich jetzt folgende Fehlermeldung:
    Code :
    1
    2
    3
    4
    
     
    Während der Installationsphase ist eine Ausnahme aufgetreten.
    System.ComponentModel.Win32Exception: Zuordnungen von Kontennamen und Sicherheit
    skennungen wurden nicht durchgeführt

    Habs bereits mit dem LocalSystem-Account, LocalService-Account, dem Administrator-Konto sowie meinen Benutzeraccount versucht, jedesmal dieselbe Fehlermeldung...
     
    "Wenn Sie mich suchen, ich halte mich in der Nähe des Wahnsinns auf, genauer gesagt auf der schmalen Linie zwischen Wahnsinn und Panik, gleich um die Ecke von Todesangst, nicht weit weg von Irrwitz und Idiotie!"
    -- Bernd das Brot

Ähnliche Themen

  1. Fehler beim Windows 7 oder Grafikkarte?
    Von Ozonschicht im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 23.02.10, 14:54
  2. Fehler-Meldung beim aufstarten von Windows Vista
    Von Speedstar im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 19.04.08, 23:34
  3. Antworten: 1
    Letzter Beitrag: 28.01.07, 20:58
  4. Fehler beim Aktualisieren von Windows Defender
    Von partitionist im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 22.11.06, 18:06
  5. Antworten: 0
    Letzter Beitrag: 05.07.04, 11:52