73 lines
2.3 KiB
VB.net
73 lines
2.3 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
|
|
|
|
Public Class WindowsService
|
|
Inherits ServiceBase
|
|
|
|
Private _serviceHost As ServiceHost = Nothing
|
|
|
|
Private _logConfig As LogConfig
|
|
Private _logger As Logger
|
|
Private _db As Firebird
|
|
Private _clientsConnected As Integer = 0
|
|
Private _clients As New List(Of Session)
|
|
|
|
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
|
|
_logConfig = New LogConfig(LogConfig.PathType.CustomPath, AppConfig.ConfigPath)
|
|
_logger = _logConfig.GetLogger()
|
|
|
|
_logger.Info("Service {0} is starting", SERVICE_DISPLAY_NAME)
|
|
|
|
AddHandler LicenseService.ClientConnectedEvent, AddressOf EDMService_ClientConnected
|
|
AddHandler LicenseService.ClientDisconnectedEvent, AddressOf EDMService_ClientDisonnected
|
|
|
|
LicenseService.LogConfig = _logConfig
|
|
|
|
_logger.Info("Starting the WCF Service")
|
|
|
|
_serviceHost = New ServiceHost(GetType(LicenseService))
|
|
_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
|
|
|
|
Private Sub EDMService_ClientDisonnected(sender As Object, e As Session)
|
|
_clientsConnected -= 1
|
|
_clients.Remove(e)
|
|
_logger.Info("Client {0}/{1} disconnected! Total {2}", e.Username, e.SessionId, _clientsConnected)
|
|
End Sub
|
|
|
|
Private Sub EDMService_ClientConnected(sender As Object, e As Session)
|
|
_clientsConnected += 1
|
|
_clients.Add(e)
|
|
_logger.Info("Client {0}/{1} connected! Total {2}", e.Username, e.SessionId, _clientsConnected)
|
|
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
|
|
|