Betrieb und Wartung
Dieser Abschnitt beschreibt den laufenden Betrieb und die Wartung des MesoWorkerService.
Manuelles Datenbank-Update (optional)
Das manuelle Datenbank-Update ist nur in Sonderfällen erforderlich, z.B. wenn Sie die Datenbank explizit aktualisieren möchten, ohne den Service zu starten.
Windows:
MesoWorker.Win.exe -updateDatabase -silent
Container:
docker run --rm \
-e ConnectionStrings__ConnectionString="Data Source=SQL-SERVER;Initial Catalog=MesoWorkerDb;User ID=sql-user;Password=***;TrustServerCertificate=true" \
-e ConnectionStrings__WinLineSystemDBConnectionString="Data Source=SQL-SERVER;Initial Catalog=CWLSYSTEM;User ID=sql-user;Password=***;TrustServerCertificate=true" \
ghcr.io/css-edv-support/mesoworkerservice-blazor:latest \
-updateDatabase -forceUpdate -silent
Parameter:
-updateDatabase - Startet den Datenbankaktualisierungsmodus
-forceUpdate - Erzwingt Update auch wenn Versionen übereinstimmen (optional)
-silent - Keine Benutzerinteraktion erforderlich (optional)
Exit Codes: 0 = Erfolgreich, 1 = Fehler, 2 = Update nicht erforderlich
Mail-Journal
Das Mail-Journal protokolliert alle versendeten und fehlgeschlagenen E-Mails.
Informationen im Journal:
- Zeitstempel des Versands/Fehlers
- Empfänger (To, CC, BCC)
- Betreff
- Status (versendet, fehlgeschlagen, wartend)
- Fehlermeldungen (bei fehlgeschlagenen E-Mails)
- Verknüpfter Workflow
Verwendung:
- Überprüfen Sie regelmäßig das Journal auf fehlgeschlagene E-Mails
- Analysieren Sie Fehlermeldungen bei Problemen
- Überwachen Sie die Zustellungsrate
Fehlerbenachrichtigungen
Der Service benachrichtigt Administratoren automatisch bei Problemen.
Benachrichtigungsfälle:
- E-Mail konnte nicht versendet werden
- SMTP-Server ist nicht erreichbar
- Authentifizierung fehlgeschlagen
- Lizenz ist ungültig oder abgelaufen
Protokollierung
Der Service erstellt detaillierte Protokolldateien für Diagnose und Überwachung.
Protokolldateien:
- Windows-Dienst:
Logs/MesoWorkerService-[Datum].txt - Container: Ausgabe über Docker Logs (
docker logs mesoworkerservice)
Protokollierungsstufen:
- Information: Normale Betriebsmeldungen
- Warning: Warnungen (z.B. fehlende Empfänger)
- Error: Fehler (z.B. Datenbankverbindung fehlgeschlagen)
- Debug: Detaillierte Debug-Informationen (nur für Fehlersuche)
Konfiguration: Protokollierungsstufen können in appsettings.json oder Umgebungsvariablen angepasst werden:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Best Practices:
- Überprüfen Sie Protokolle regelmäßig auf Fehler und Warnungen
- Behalten Sie "Information" als Standard-Protokollierungsstufe
- Verwenden Sie "Debug" nur zur Fehlersuche (erzeugt viele Einträge)
- Archivieren Sie alte Protokolldateien regelmäßig
SMTP-Debug-Modus
Der SMTP-Debug-Modus ermöglicht eine detaillierte Diagnose des E-Mail-Versands. Bei Aktivierung werden alle ausgehenden E-Mails mit erweiterten Informationen protokolliert und optional als EML-Dateien gespeichert.
Funktionsumfang:
- Detaillierte Protokollierung aller E-Mail-Details (Absender, Empfänger, Betreff, SMTP-Konto-Informationen)
- Optionales Speichern jeder ausgehenden E-Mail als
.eml-Datei zur Analyse - Bestätigungsprotokollierung nach erfolgreichem Versand
Konfigurationsparameter:
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
Enabled |
bool | false |
Aktiviert/Deaktiviert den SMTP-Debug-Modus |
SaveEmlToDirectory |
string | "" |
Verzeichnispfad zum Speichern von EML-Dateien. Leer = kein Speichern |
Konfiguration in appsettings.json (Windows-Dienst):
"SmtpDebug": {
"Enabled": true,
"SaveEmlToDirectory": "C:\\Temp\\MailDebug"
}
Konfiguration als Umgebungsvariablen (Portainer Stack / Docker):
environment:
# SMTP-Debug-Modus aktivieren
- SmtpDebug__Enabled=true
# Optional: EML-Dateien im Container speichern
- SmtpDebug__SaveEmlToDirectory=/app/debug-mails
Wenn EML-Dateien im Container gespeichert werden sollen, muss ein Volume gemappt werden, damit die Dateien auch nach einem Container-Neustart verfügbar bleiben:
services:
mesoworkerservice:
environment:
- SmtpDebug__Enabled=true
- SmtpDebug__SaveEmlToDirectory=/app/debug-mails
volumes:
- type: bind
source: //server/share/debug-mails # Pfad auf dem Host
target: /app/debug-mails
Protokollausgabe bei aktiviertem Debug-Modus:
Die Protokolleinträge werden mit dem Prefix [SMTP-DEBUG] auf der Stufe Warning geschrieben und enthalten:
- SMTP-Konto-Details (EmailFrom, Host, Port, SSL/TLS-Einstellungen)
- Absender- und Empfänger-Adressen (To, CC, BCC)
- Betreff der E-Mail
- Anzahl der Empfänger pro Typ
- Pfad der gespeicherten EML-Datei (wenn
SaveEmlToDirectorykonfiguriert)
Beispiel einer Protokollausgabe:
[SMTP-DEBUG] === Mail wird gesendet ===
SMTP-Account: [email protected], Host=smtp.firma.de, Port=587, SSL=False, StartTLS=True
From: [email protected]
To: [email protected]
CC: (keine)
BCC: [email protected]
Subject: Bestellbestätigung REF-2024-001
BCC-Count: 1 | To-Count: 1 | CC-Count: 0
[SMTP-DEBUG] EML gespeichert: /app/debug-mails/debug_20260217_143022_a1b2c3d4.eml
[SMTP-DEBUG] Mail erfolgreich gesendet via [email protected]: Subject="Bestellbestätigung REF-2024-001"
Wichtige Hinweise:
- Der Debug-Modus sollte nur temporär zur Fehlerdiagnose aktiviert werden
- Die Protokollierung erfolgt auf Stufe
Warning, um auch bei Standard-Protokollierungsstufe sichtbar zu sein - Bei aktiviertem
SaveEmlToDirectorywerden alle ausgehenden E-Mails als Dateien gespeichert — achten Sie auf den Speicherplatz - EML-Dateien können mit jedem E-Mail-Client (z.B. Outlook, Thunderbird) geöffnet und analysiert werden
- Im Container-Betrieb ohne Volume-Mapping gehen gespeicherte EML-Dateien bei Container-Neustart verloren
Wartungsaufgaben
Regelmäßige Aufgaben:
-
Mail-Journal prüfen (täglich)
- Überprüfen Sie fehlgeschlagene E-Mails
- Analysieren Sie Trends bei Fehlern
-
Stammdaten pflegen (wöchentlich)
- Aktualisieren Sie E-Mail-Adressen von Kunden
- Überprüfen Sie Ansprechpartner-Daten
-
SMTP-Konten überwachen (wöchentlich)
- Testen Sie SMTP-Verbindungen
- Überprüfen Sie OAuth-Token (M365)
-
Protokolldateien prüfen (wöchentlich)
- Suchen Sie nach wiederkehrenden Fehlern
- Überprüfen Sie Performance-Warnungen
-
Service-Status überwachen (täglich)
- Health-Check-Endpoint aufrufen:
http://server:5000/health - Windows-Dienst-Status prüfen
- Health-Check-Endpoint aufrufen:
-
Updates einspielen (nach Bedarf)
- Neue Container-Images deployen
- Windows-Dienst aktualisieren
- Konfigurationsänderungen testen
Troubleshooting:
Problem: E-Mails werden nicht versendet
- Überprüfen Sie Mail-Journal auf Fehler
- Prüfen Sie SMTP-Konto-Einstellungen
- Testen Sie SMTP-Server-Erreichbarkeit
- Überprüfen Sie Workflow-Filter-Einstellungen
Problem: Keine Empfänger gefunden
- Überprüfen Sie Kundenstamm-Daten (E-Mail-Adressen)
- Prüfen Sie Empfängerregeln in Mail-Einstellungen
- Überprüfen Sie Ansprechpartner-Zuweisungen
Problem: Service startet nicht
- Überprüfen Sie Lizenz-Einstellungen
- Prüfen Sie Datenbankverbindungen
- Kontrollieren Sie Protokolldateien