Direkt zum Hauptinhalt

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.

    Zugriff: Navigieren Sie in der Administrationsoberfläche zu "Queued Mail" oder "Mail Journal".

    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 SaveEmlToDirectory konfiguriert)

    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 SaveEmlToDirectory werden 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:

    1. Mail-Journal prüfen (täglich)

      • Überprüfen Sie fehlgeschlagene E-Mails
      • Analysieren Sie Trends bei Fehlern
    2. Stammdaten pflegen (wöchentlich)

      • Aktualisieren Sie E-Mail-Adressen von Kunden
      • Überprüfen Sie Ansprechpartner-Daten
    3. SMTP-Konten überwachen (wöchentlich)

      • Testen Sie SMTP-Verbindungen
      • Überprüfen Sie OAuth-Token (M365)
    4. Protokolldateien prüfen (wöchentlich)

      • Suchen Sie nach wiederkehrenden Fehlern
      • Überprüfen Sie Performance-Warnungen
    5. Service-Status überwachen (täglich)

      • Health-Check-Endpoint aufrufen: http://server:5000/health
      • Windows-Dienst-Status prüfen
    6. 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