Попробуйте переместиться
ServiceBase.Run (новый TestMyService) из общедоступного общего подчиненного ()
до
Защищенные переопределения Sub OnStart
затем удалите Public Shared Sub Main ()
Кроме того, удалите Public Sub New (), потому что вы можете установить эти свойства из «Окна свойств». F7 для переключения с кода на представление конструктора.
Обновление 1: пример службы Windows для монитора папок
Imports System.Net.Mail
Imports System.Net
Imports System.Timers
Imports System.IO
Public Class DemoFolderMonitor
Private Shared timer As System.Timers.Timer
Private Shared timerInterval As Integer
Protected Overrides Sub OnStart(ByVal args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
' Use the EventLog object automatically configured by the
' ServiceBase class to write to the event log.
'EventLog.WriteEntry(String.Format("DemoFolderMonitor Service starting."))
' Set the Interval (1sec = 1000 milliseconds).
timerInterval = 2000
timer = New System.Timers.Timer(timerInterval)
EventLog.WriteEntry("DemoFolderMonitor Service starting.")
' Hook up the Elapsed event for the timer.
AddHandler timer.Elapsed, AddressOf WatchFolder
timer.Interval = timerInterval
timer.Enabled = True
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your service.
EventLog.WriteEntry("DemoFolderMonitor Service stopping...")
End Sub
Protected Sub WatchFolder()
Dim watcher As New FileSystemWatcher
watcher.Path = "C:\Demo\"
watcher.NotifyFilter = (NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName)
'watch all file types.
watcher.Filter = "*.*"
' Add event handlers.
AddHandler watcher.Changed, AddressOf OnChanged
AddHandler watcher.Created, AddressOf OnChanged
AddHandler watcher.Deleted, AddressOf OnChanged
AddHandler watcher.Renamed, AddressOf OnRenamed
' Begin watching.
watcher.EnableRaisingEvents = True
End Sub
'Define the event handlers.
Private Shared Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs)
' Specify what is done when a file is changed, created, or deleted.
Dim changeLog = "File: " & e.FullPath & " " & " | Action: " & e.ChangeType.ToString
WriteChangeLog(changeLog)
End Sub
Private Shared Sub OnRenamed(ByVal source As Object, ByVal e As RenamedEventArgs)
' Specify what is done when a file is renamed.
Dim changeLog = "File" & e.OldFullPath & " " & "renamed to" & " " & e.FullPath
WriteChangeLog(changeLog)
End Sub
'Custom action. You can either send an e-mail or write change to local file
'In this example I write change to local file
Private Shared Sub WriteChangeLog(ByVal changeLog As String)
'Create a text file and write the change log to the text file
Dim filename As String = DateTime.Now.ToString("hh-mm-ss") & ".txt"
Dim writer As StreamWriter
writer = File.CreateText("C:\ChangeLog\" & filename)
writer.WriteLine("Datetime Log at {0} Log Message: {1}", DateTime.Now.ToString("MMM-dd-yyyy @ hh:mm:ss tt"), changeLog)
writer.Close()
End Sub
End Class
Для дальнейшего прочтения проверьте:
унывайте!