Runbook: Windows storitev

Trajanje: ~15 minut
Vloga: Windows administrator
Predpogoj: Administratorske pravice, .NET 8 Runtime

Namestitev in upravljanje Data Gateway kot Windows storitev.


Potek dela

flowchart TD A[Začetek] --> B[Kopiranje Gateway] B --> C[Registracija storitve] C --> D[Konfiguracija storitve] D --> E[Zagon storitve] E --> F[Health Check] F --> G{V redu?} G -->|Da| H[Končano] G -->|Ne| I[Preveri Event Log] style H fill:#e8f5e9 style I fill:#ffebee


1. Namestitev Gateway

# Ustvari mapo
New-Item -ItemType Directory -Path "%SERVICES_ROOT%\DataGateway" -Force
 
# Kopiraj datoteke
Copy-Item -Path ".\publish\*" -Destination "%SERVICES_ROOT%\DataGateway" -Recurse
 
# Prilagodi konfiguracijo
notepad "%SERVICES_ROOT%\DataGateway\appsettings.json"

2. Ustvarjanje storitve s sc.exe

# Izvedi kot administrator
sc.exe create "DataGateway" `
    binPath= "%SERVICES_ROOT%\DataGateway\WvdS.WebAPI.Data.Gateway.Api.exe" `
    DisplayName= "WvdS Data Gateway" `
    start= auto `
    obj= "NT AUTHORITY\NETWORK SERVICE"
 
# Nastavi opis
sc.exe description "DataGateway" "REST/OData/GraphQL API Gateway za podatkovne baze"

3. Ustvarjanje storitve z NSSM (alternativa)

NSSM (Non-Sucking Service Manager) ponuja več nadzora:

# Prenesi NSSM
Invoke-WebRequest -Uri "https://nssm.cc/release/nssm-2.24.zip" -OutFile "nssm.zip"
Expand-Archive -Path "nssm.zip" -DestinationPath "%TOOLS_PATH%"
 
# Namesti storitev
%TOOLS_PATH%\nssm-2.24\win64\nssm.exe install DataGateway "%SERVICES_ROOT%\DataGateway\WvdS.WebAPI.Data.Gateway.Api.exe"
 
# Konfiguracija
nssm set DataGateway AppDirectory "%SERVICES_ROOT%\DataGateway"
nssm set DataGateway DisplayName "WvdS Data Gateway"
nssm set DataGateway Description "REST/OData/GraphQL API Gateway"
nssm set DataGateway Start SERVICE_AUTO_START
nssm set DataGateway AppStdout "%SERVICES_ROOT%\DataGateway\logs\stdout.log"
nssm set DataGateway AppStderr "%SERVICES_ROOT%\DataGateway\logs\stderr.log"
nssm set DataGateway AppRotateFiles 1
nssm set DataGateway AppRotateBytes 10485760

4. Zagon storitve

# Zaženi
Start-Service -Name "DataGateway"
 
# Preveri status
Get-Service -Name "DataGateway"
 
# Ustavi
Stop-Service -Name "DataGateway"
 
# Ponovno zaženi
Restart-Service -Name "DataGateway"

5. Konfiguracija samodejnega zagona

# Samodejni zagon ob zagonu sistema
Set-Service -Name "DataGateway" -StartupType Automatic
 
# Zakasnjen zagon (po omrežju)
sc.exe config "DataGateway" start= delayed-auto
 
# Možnosti obnovitve (ponovni zagon ob sesutju)
sc.exe failure "DataGateway" reset= 86400 actions= restart/60000/restart/60000/restart/60000

6. Health Check

# Počakaj da je storitev pripravljena
Start-Sleep -Seconds 5
 
# Health Check
$response = Invoke-WebRequest -Uri "http://localhost:5000/health" -UseBasicParsing
if ($response.StatusCode -eq 200) {
    Write-Host "Gateway deluje!" -ForegroundColor Green
} else {
    Write-Host "Težava z Gateway!" -ForegroundColor Red
    Get-EventLog -LogName Application -Source "DataGateway" -Newest 10
}

7. Kontrolni seznam

# Točka preverjanja V
———–
1 Datoteke v %SERVICES_ROOT%\DataGateway
2 appsettings.json konfiguriran
3 Storitev registrirana
4 Storitev zagnana
5 Health Check uspešen
6 Samodejni zagon aktiven
7 Obnovitev konfigurirana

Odpravljanje težav

Težava Vzrok Rešitev
————————–
Storitev se ne zažene Manjka .NET Runtime Preveri dotnet –info
Access denied Manjkajoče pravice Namesti kot administrator
Vrata že v uporabi Drug proces netstat -ano | findstr 5000
Config error JSON sintaksa Validiraj appsettings.json

Preverjanje Event Log:

Get-EventLog -LogName Application -Source "DataGateway" -Newest 20 | Format-Table TimeGenerated, EntryType, Message -Wrap

Odstranitev storitve

# Ustavi
Stop-Service -Name "DataGateway" -Force
 
# Odstrani
sc.exe delete "DataGateway"
 
# Izbriši datoteke (neobvezno)
Remove-Item -Path "%SERVICES_ROOT%\DataGateway" -Recurse -Force

Povezani Runbooks


« <- Avtomatizacija | -> systemd »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional

Zuletzt geändert: dne 29.01.2026 ob 23:32