Imports System.ServiceModel Imports System.ServiceProcess Imports System.Configuration Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database.Exceptions Imports System.ServiceModel.Channels Imports System.ServiceModel.Dispatcher Public Class WindowsService Inherits ServiceBase Private _serviceHost As ServiceHost = Nothing Private _edmService As EDMService = 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.Info("Connecting to database") _db = New Firebird( _logConfig, AppConfig.FirebirdDataSource, AppConfig.FirebirdDatabase, AppConfig.FirebirdUser, AppConfig.FirebirdPassword ) _logger.Info("Successfully connected to database!") EDMService.Database = _db EDMService.LogConfig = _logConfig EDMService.AppConfig = _config _logger.Info("Starting the WCF Service") _serviceHost = New ServiceHost(GetType(EDMService)) _serviceHost.Open() _logger.Info("Successfully started the WCF Service!") _logger.Info("Service {0} successfully started!", SERVICE_DISPLAY_NAME) Catch ex As Exception _logger.Error(ex, "Failed to start the service host!") End Try End Sub Protected Overrides Sub OnStop() If _serviceHost IsNot Nothing Then _serviceHost.Close() _serviceHost = Nothing End If _logger.Info("Service {0} is stopping!", SERVICE_DISPLAY_NAME) End Sub End Class