Announcement

Collapse
No announcement yet.

Dienst starten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dienst starten

    Hi,

    ich habe einen Dienst geschrieben, der einfach nur in den Evantlog das heutige Datum reinschreiben soll.
    Den Dienst habe ich installiert und wenn ich ihn starten will bekomme ich die Fehlermeldung : Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung

    Was kann ich dagegen tun ?
    -----------------------------------------------------------

    # Man kann sein Geld auch zum
    # Windows hinauswerfen!!!

    () ()
    (^^)
    (n n)
    -----------------------------------------------------------

  • #2
    So,

    ich habe es endlich rausgefunden. In der Main() Fkt, die man angeben muss, muss das Objekt des Service bei bei der Service.Base bekannt gemacht, bzw. aufgerufen werden, in etwa so:

    Code:
     Public Shared Sub Main()
            ServiceBase.Run(New MyNewService)
    End Sub
    Wenn es noch Probleme gibt, stellt sie einfach. Anbei noch einen Link zum Lesen.

    'http://www.microsoft.com/germany/msdn/library/security/SicherheitsUndIdentitaetsverwaltungVerteilterASPNE TAnwendungen/secmod29.mspx?mfr=true
    -----------------------------------------------------------

    # Man kann sein Geld auch zum
    # Windows hinauswerfen!!!

    () ()
    (^^)
    (n n)
    -----------------------------------------------------------

    Comment


    • #3
      Noch einen Nachtrag, hier kommt noch ein Codebeispiel zum selber basteln. Da bei meinem Service das Eventhandling nicht funktioniert hat, habe ich einen anderen Timer verwendet, als den Windows.Forms.Timer.

      Code:
      Imports System.ServiceProcess
      Imports System.Threading
      
      Public Class timerstate
          Public counter As Integer = 0
          Public tmr As System.Threading.Timer = Nothing
          Public enabled As Boolean = False
      End Class
      
      
      
      Public Class MyNewService
          Inherits ServiceBase
          Private ts As timerstate = New timerstate
      
          Private Sub timer3callback(ByVal state As Object)
              Dim s As timerstate = DirectCast(state, timerstate)
              s.counter += 1
              Dim log As New System.Diagnostics.EventLog()
              If Not Diagnostics.EventLog.SourceExists("MyNewService") Then
                  Diagnostics.EventLog.CreateEventSource("MyNewService", "MyNewService Log")
              End If
              log.Source = "MyNewService"
              log.WriteEntry("MyNewService Log" + Date.Now.ToString)
              'System.Windows.Forms.MessageBox.Show("Blubb " + s.counter.ToString)
          End Sub
      
          Protected Overrides Sub OnStart(ByVal args() As String)
              ' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
              ' ausführen, damit der Dienst gestartet werden kann.
      
              If ts.enabled Then
                  'disable timer 
                  ts.enabled = False
                  ts.tmr.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite)
              Else
                  If ts.tmr Is Nothing Then
                      ' first time through , create the timer 
                      ts.tmr = New System.Threading.Timer(New TimerCallback(AddressOf timer3callback), ts, 1000, 1000)
                  Else
                      'enable the timer 
                      ts.tmr.Change(1000, 1000)
                  End If
                  ts.enabled = True
              End If
          End Sub
      
          Protected Overrides Sub OnStop()
              ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
      
          End Sub
      
          Public Shared Sub Main()
              'Dim servicestorun As New System.ServiceProcess.ServiceBase()
              ServiceBase.Run(New MyNewService)
          End Sub
      
      End Class
      -----------------------------------------------------------

      # Man kann sein Geld auch zum
      # Windows hinauswerfen!!!

      () ()
      (^^)
      (n n)
      -----------------------------------------------------------

      Comment

      Working...
      X