Trajanje: ~15 minut
Vloga: Windows administrator
Predpogoj: Administratorske pravice, .NET 8 Runtime
Namestitev in upravljanje Data Gateway kot Windows storitev.
# 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"
# 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"
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
# Zaženi Start-Service -Name "DataGateway" # Preveri status Get-Service -Name "DataGateway" # Ustavi Stop-Service -Name "DataGateway" # Ponovno zaženi Restart-Service -Name "DataGateway"
# 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
# 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 }
| # | 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 |
| 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
# Ustavi Stop-Service -Name "DataGateway" -Force # Odstrani sc.exe delete "DataGateway" # Izbriši datoteke (neobvezno) Remove-Item -Path "%SERVICES_ROOT%\DataGateway" -Recurse -Force
« <- Avtomatizacija | -> systemd »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional