У меня есть следующий файл службы Windows:
Imports System.ServiceProcess
Imports System.IO
Public Class fswService
Dim fsw As FileSystemWatcher
Dim lf As StreamWriter
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.
lf = New StreamWriter(Application.StartupPath & "\fsw_lg.log")
fsw = New FileSystemWatcher()
fsw.Path = args(0)
fsw.IncludeSubdirectories = True
fsw.Filter = ".txt"
fsw.EnableRaisingEvents = True
AddHandler fsw.Created, New FileSystemEventHandler(AddressOf file_created)
AddHandler fsw.Changed, New FileSystemEventHandler(AddressOf file_changed)
AddHandler fsw.Deleted, New FileSystemEventHandler(AddressOf file_deleted)
End Sub
Public Sub file_created(ByVal obj As Object, ByVal e As FileSystemEventArgs)
lf.WriteLine(Now.ToShortDateString & "-" & Now.ToShortTimeString & "-" & e.FullPath & "-created")
End Sub
Public Sub file_changed(ByVal obj As Object, ByVal e As FileSystemEventArgs)
lf.WriteLine(Now.ToShortDateString & "-" & Now.ToShortTimeString & "-" & e.FullPath & "-changed")
End Sub
Public Sub file_deleted(ByVal obj As Object, ByVal e As FileSystemEventArgs)
lf.WriteLine(Now.ToShortDateString & "-" & Now.ToShortTimeString & "-" & e.FullPath & "-deleted")
End Sub
Protected Overrides Sub OnStop()
lf.Close()
End Sub
End Class
У меня ServiceName установлено в fswService (так же, как имя класса). Когда я добавил установщик, я также установил имя_службы для ServiceInstaller1 как fswService.
Я хочу запустить эту службу во время выполнения, основываясь на настройке пользователем пути к папке, которая будет отслеживаться. Для этого у меня есть следующее:
Dim fsw_controller As New ServiceProcess.ServiceController
fsw_controller.Start(fswService)
2 проблемы: во-первых, ошибка intellisense, говорящая: 'fswService' является типом и не может использоваться в качестве выражения. во-вторых, я не могу найти способ передать службе путь к папке для просмотра (которая хранится в My.Settings.userPath).
Я действительно думал, что именно так вы запускаете службу. Я что-то упустил?
Ваша помощь, как всегда, ценится.
Спасибо