78 lines
2.2 KiB
VB.net
78 lines
2.2 KiB
VB.net
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
|
|
|