Problem mit Tobit-API in Windows Dienst

  • Erst einmal ein Herzliches Hallo, ist mein erster Beitrag heute :)

    Ich bin gerade dabei einen Windows dienst in C# zu bauend er die API von Tobit benutzt.
    Er soll Mails in einem Verzeichnis überwachen und diese in eine Datenbank schreiben - von dieser aus soll dann irgendwann mal eine statistik aufgerufen werden.

    Nunja... wenn ich meinen diesnt starten möchte, taucht in den Ereignismeldungen dieser fehler auf:

    Code
    Der Dienst kann nicht gestartet werden. System.Runtime.InteropServices.COMException (0x80040010): Objekt ist nicht in einem der Inplace Active States. (Ausnahme von HRESULT: 0x80040010 (OLE_E_NOT_INPLACEACTIVE))
       bei DvApi32.DavidAPIClass.Logon(Object server, Object User, Object password, Object profile, Object Dctl, Object cmd)
       bei TobitDienst.TobitDienst.einlesen() in e:\Visual Studio 2005\sharpdevelop\TobitDienst\TobitDienst.cs:Zeile 127.
       bei TobitDienst.TobitDienst.OnStart(String[] args) in e:\Visual Studio 2005\sharpdevelop\TobitDienst\TobitDienst.cs:Zeile 69.
       bei System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
    
    
    Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter [URL]http://go.microsoft.com/fwlink/events.asp.[/URL]


    Die Tobit-API ist über COM als Referenz eingebunden (Liegt in c:\windows)
    Die selben Funktionen,. als NICHT-Dienst (also als Normale Windows-Anwendung) funktionieren auch - das muss iregndwas damit zu tun haben das das ganze als dienst ausgeführt wird.

    Hat jemand eine Idee?

    Einmal editiert, zuletzt von SvenS (3. Mai 2007 um 09:18)

  • Problem gelöst.

    Der dienst lief als Lokales Systemkonto - da Tobit aber im AD steckt und ich mich da anmelden möchte muss der dienst logischerweise als Domänen-Benutzer laufen.

    Echt blöd von mir :/

    Sorry für die Störung :)

  • Hi!

    Unter welchem User wird der Dienst ausgeführt? Local System wird nicht funktionieren. Es muss ein realer Benutzer sein, der auch einen Account im David hat.

    Allerdings würde mich da die Fehlermeldung etwas wundern...

    Gruß

    Björn

  • Es war Local System.

    Da der Fehler im logon() auftrat denke ich schon das man daraus schließen kann das der Fehler eben daran liegt das der Local System Account keinen David-Account hat.

    Naja - komische Fehlermeldung hin oder her - man darf von COM(ponenten) wohl nicht viel verlangen - eine .NET API vom David wäre schon was tolles... :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!