Problem bei Windows Dienst bzw. Konsolenanwendung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Silvergreen.

    Problem bei Windows Dienst bzw. Konsolenanwendung

    Hallo alle zusammen,

    ich war mir bei der Gestaltung des Titels ein wenig unsicher, da viele Titel gepasst hätten. Nun ja, jetzt ist es wohl der geworden.
    Und zwar geht es um folgendes Problem.
    Ich habe eine Konsolenanwendung geschrieben, die aus einem Öffentlichen Kalender in Outlook, nach
    bestimmten Personen sucht und daraufhin an andere Personen eine Email mit einem angehängten Kalendereintrag sendet.
    Das hat auch unter Aufsicht funktioniert, allerdings sollte diese Anwendung auf einem Server laufen und von dort aus die Emails verteilen sowie den Kalender auslesen.
    Da auf dem Server nicht immer jemand angemeldet ist, müsste die Anwendung im Hintergrund laufen.
    Daraufhin habe ich aus dem Code den ich bereits hatte, einen Windows Dienst erstellt.
    Auch diesen konnte ich soweit starten, allerdings kann dieser Dienst nicht den Code...

    VB.NET-Quellcode

    1. Dim outApp = CreateObject("Outlook.Application")

    ausführen.

    Soweit mein Problem, nun zu meiner Frage:
    - Kann ich die gewünschte Funktion (auslesen Kalender und senden einer Email mit Anhang) mit einem/meinem Windows Dienst realisieren?
    - Oder kann ich die Konsolenanwendung so auf dem Server laufen lassen, dass dieser auch bei nicht angemeldetem Benutzer läuft und die bereits erwähnten Funktionen ausführt?
    - Oder gibt es noch eine andere, bessere Lösung die gewünschten Funktion in einer Anwendung o.ä zu realisieren?

    Mfg Marco
    ?(
    Das Starten von Outlook erfordert einen Benutzer.
    Hast du den Dienst unter deinem Benutzer gestartet?

    Services dürfen keine GUI-Interaktion beinhalten.
    Ich weiß nicht, ob das mit Outlook gegeben ist.

    Du kannst den Task im Windows Scheduler unter deinem Benutzer starten.
    Du darfst allerdings beim Passwortwechsel nicht vergessen, den Task entsprechend anzupassen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @petaod
    ,,Das Starten von Outlook erfordert einen Benutzer.
    Hast du den Dienst unter deinem Benutzer gestartet?"

    - Ich habe es unter "LocalSytem" gestartet, da ich das mit der Anmeldung nicht auf die reihe bekommen habe.

    ,,Services dürfen keine GUI-Interaktion beinhalten.
    Ich weiß nicht, ob das mit Outlook gegeben ist."

    - Bei der Abfrage wird nichts visuell angezeigt. Outlook kann soweit ich mich erinnere auch geschlossen werden
    und es funktioniert immer noch.

    ,,Du kannst den Task im Windows Scheduler unter deinem Benutzer starten.
    Du darfst allerdings beim Passwortwechsel nicht vergessen, den Task entsprechend anzupassen."

    - Ich werde mal noch ein bisschen herumprobieren, allerdings hat die Anmeldung mit einem Nutzer bisher nie funktioniert,
    bzw. in der Konsole wurde immer ein Fehler angezeigt.
    ?(

    Silvergreen schrieb:

    Ich habe es unter "LocalSytem" gestartet
    Das kann nicht funktionieren, da sich Outlook anhand der User Credentials die Mail-Daten lädt und am Exchange-Server anmeldet.

    Silvergreen schrieb:

    in der Konsole wurde immer ein Fehler angezeigt
    Welcher?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --