none
Windowsdienst mit Ini-Datei, Ereignisanzeige? RRS feed

  • Allgemeine Diskussion

  • Hallo,

    ich habe ein Wind-Dienst "dienst.exe" geschrieben, wo er beim Starten aus einer Ini-Datei bestimmte Werte einliest und mit "installutil.exe dienst.exe" installiere ich ihn => klappt.

    Fragen ?:

    1.in welchem Pfad sollte diese Ini-Datei stehen, damit er darauf zugreifen kann (bei der Installation mit installutil.exe merkt er sich den Pfad nicht oder wo stehen sonst so die Ini-Datei für einen Dienst ?)

    2.wie kann ich im Ereignisanzeige mir ein EventLog z.B. namens "MeinDienst" erstelle, damit er nur aus mein dienst.exe Ereignisse hinschreibt und nicht in irgend ein SystemEventLog schreibt?

    if (!System.Diagnostics.EventLog.SourceExists("MeinDienstSrc"))
    {
     System.Diagnostics.EventLog.CreateEventSource("MeinDienstSrc", "MeinDienst");
    }
    
    myDienstEventLog.Source = "MeinDienstSrc";
    myDienstEventLog.Log = "MeinDienst";
    

    dies habe ich versucht und kommt zu Fehler

    MFG

    Mittwoch, 30. Juli 2014 13:57

Alle Antworten

  • Hi Ati,

    für 1 nimmst du am Besten einfach die Konfig-Datei des Dinstes. Die muss dann im selben Verzeichnis wie der Service.

    zu 2 schau dir mal den Link an.

    MFG

    Björn

    Mittwoch, 30. Juli 2014 14:41
  • Hallo,

    vielen dank.

    1."Die muss dann im selben Verzeichnis wie der Service." und zwar wo ?

    2.in der EreignisProtokoll.Anwendung gibt er eine Meldung für die Registrierung und Zuordnung vom Log und Source, die er mir beim Probieren angelegt hat.

    Mir geht es jetzt darum diese Registrierung der Zuordnung anzupassen oder löschen und neuanlegen, aber ich weiß nicht wo und in den *.config Dateien oder Registry habe ich auch diese nicht finden können.

    MFG


    • Bearbeitet ati.sah Donnerstag, 31. Juli 2014 08:11
    Donnerstag, 31. Juli 2014 07:54
  • Hi,

    1."Die muss dann im selben Verzeichnis wie der Service." und zwar wo ?

    ? Genau dort, wo deine .exe Datei auch liegt.

    2.in der EreignisProtokoll.Anwendung gibt er eine Meldung für die Registrierung und Zuordnung vom Log und Source, die er mir beim Probieren angelegt hat.

    Da weiß ich ehrlich gesagt nicht, was Du meinst.

    Du hast es doch schon probiert und da soll ein Fehler aufgetreten sein. Poste doch mal die genaue und vollständige Fehlermeldung, dann kann man evtl. weiterhelfen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 31. Juli 2014 10:19
    Moderator
  • Hallo,

    1.was passiert nach der Dienst-Install ? wohin kopiert das System sich die Dateien ?

    2.Fehler: "Der Dienst kann nicht gestartet werden. System.ArgumentException: Die Quelle MeinDienstSrc ist nicht im Protokoll MeinDienstLog, sondern in Protokoll MyLog registriert. Die Source- und Log-Eigenschaften müssen übereinstimmen. Sie können eine leere Zeichenfolge für Log festlegen, damit Log mit der Source-Eigenschaft übereinstimmt.
       bei System.Diagnostics.EventLogInternal.VerifyAndCreateSource(String sourceName, String currentMachineName)
       bei System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
       bei System.Diagnostics.EventLog.WriteEntry(String message)
       bei MeinDienst.Service1.OnStart(String[] args) in C:\Temp\Service1.cs:Zeile 99.
       bei System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)"

    MFG

    Donnerstag, 31. Juli 2014 10:36
  • Hi,

    zu 1: Nirgends. Du installierst den Dienst ja manuell und gibst dort die .exe Datei an. Und dort, wo die liegt, muss auch die .config liegen.

    Zu 2: Such mal über alle Dateien deines Projekts nach "MeinDienstLog". Irgendwo muss das dort stehen und das solltest Du dann ändern.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 31. Juli 2014 10:42
    Moderator
  • Morgen,

    1.habe ich richtig verstanden: ich kopiere meinen Dienst + zugehörige Dateien alle in einem Verzeichnis und versuche von dort aus den Dienst zu installieren und dieser Verzeichnis sollte so bestehen bleiben.

    2.ich habe im gesamten Projekt gesucht und nur an einer Stelle kommt der "MeinDienstLog" vor im Service1().

    der Fehler besteht noch ?

    MFG

    Freitag, 1. August 2014 05:23
  • Hi,

    zu 1: Das Verzeichnis kann so bestehen bleiben, ja. Muss es nicht, ich für meinen Teil mache das aber so. Wo sollte ich es auch hinkopieren?

    Zu 2: Da weiß ich dann auch nicht, was da bei dir an der Stelle wo schief läuft. Schau mal bitte hier:

      http://msdn.microsoft.com/de-de/library/4f69axw4.aspx

    Dort findest Du Informationen, wie man ein Eventlog erstellen oder auch löschen kann. Ggfs. hilft dir das dabei, wieder Ordnung ins "Eventlogchaos" zu bringen :)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 1. August 2014 07:43
    Moderator