79 lines
2.2 KiB
VB.net
79 lines
2.2 KiB
VB.net
Imports System.ServiceModel
|
|
Imports System.ServiceProcess
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Database
|
|
|
|
Public Class WindowsService
|
|
Inherits ServiceBase
|
|
|
|
Private _serviceHost As ServiceHost = Nothing
|
|
Private _edmService As IDBService = Nothing
|
|
|
|
Private _logConfig As LogConfig
|
|
Private _logger As Logger
|
|
Private _db As Firebird
|
|
Private _clientsConnected As Integer = 0
|
|
Private _config As AppConfig
|
|
|
|
Public Sub New()
|
|
ServiceName = SERVICE_NAME
|
|
End Sub
|
|
|
|
Public Shared Sub Main()
|
|
Run(New WindowsService())
|
|
End Sub
|
|
|
|
Protected Overrides Sub OnStart(ByVal args As String())
|
|
Try
|
|
AppConfig.Load()
|
|
|
|
_logConfig = New LogConfig(LogConfig.PathType.CustomPath, "E:\EDMService")
|
|
_logConfig.Debug = True
|
|
|
|
_logger = _logConfig.GetLogger()
|
|
|
|
_logger.Info("Service {0} is starting...", SERVICE_DISPLAY_NAME)
|
|
_logger.Debug("Connecting to database...")
|
|
|
|
_db = New Firebird(
|
|
_logConfig,
|
|
AppConfig.FirebirdDataSource,
|
|
AppConfig.FirebirdDatabase,
|
|
AppConfig.FirebirdUser,
|
|
AppConfig.FirebirdPassword
|
|
)
|
|
|
|
_logger.Info("Database connection established.")
|
|
|
|
IDBService.Database = _db
|
|
IDBService.LogConfig = _logConfig
|
|
IDBService.AppConfig = _config
|
|
|
|
_logger.Debug("Starting WCF ServiceHost...")
|
|
|
|
_serviceHost = New ServiceHost(GetType(IDBService))
|
|
_serviceHost.Open()
|
|
|
|
_logger.Debug("WCF ServiceHost started.")
|
|
|
|
_logger.Info("Service {0} successfully started.", SERVICE_DISPLAY_NAME)
|
|
Catch ex As Exception
|
|
_logger.Error(ex, "Failed to start the service host!")
|
|
GracefullyStop()
|
|
End Try
|
|
End Sub
|
|
|
|
Protected Overrides Sub OnStop()
|
|
GracefullyStop()
|
|
End Sub
|
|
|
|
Private Sub GracefullyStop()
|
|
If _serviceHost IsNot Nothing Then
|
|
_serviceHost.Close()
|
|
_serviceHost = Nothing
|
|
End If
|
|
_logger.Info("Service {0} is stopping!", SERVICE_DISPLAY_NAME)
|
|
End Sub
|
|
End Class
|
|
|