Das Outlook-Objektmodell ist für die Ausführung in einem Windows-Dienst ungeeignet.

Ursprüngliche KB-Nummer: 237913

Zusammenfassung

Das Outlook-Objektmodell (OOM) eignet sich nicht für die Verwendung in einer Anwendung, die als Windows-Dienstanwendung ausgeführt oder von dieser erstellt werden soll. Dies umfasst ASP-Anwendungen (Active Server Page), die unter IIS (Internet Information Service) ausgeführt werden, sowie Anwendungen, die zusammen mit dem AT Scheduler- oder Taskplaner-Dienst ausgeführt werden.

OOM ist ein Automatisierungsmodell für Outlook, das für die Ausführung in der Sitzung eines angemeldeten Benutzers konzipiert ist, in der ein Benutzer auf Dialogfelder reagieren kann.

Dies ist eine konzeptbedingte Einschränkung von Outlook.

Weitere Informationen

OOM weist vier wichtige Einschränkungen auf, die es wie folgt für die Verwendung in einer Windows-Dienstanwendung ungeeignet machen:

  • MAPI speichert Profile für jeden Benutzer in der HKEY_CURRENT_USER Struktur der Registrierung. Diese Registrierungsstruktur wird nicht geladen, wenn eine Windows-Dienstanwendung ausgeführt wird. Dieses besondere Problem kann trügerisch sein, da der Entwickler während eines Entwicklungszyklus interaktiv beim System angemeldet wird. Dies bewirkt, dass die HKEY_CURRENT_USER Struktur geladen wird, damit alles wie erwartet funktioniert. Nachdem der Dienst ohne interaktive Anmeldung des Besitzers des Profils getestet wurde, kann der Dienst das Profil nicht mehr finden.

  • Nur eine instance von Outlook (die Anwendung, die das Outlook-Objektmodell exportiert) kann gleichzeitig in einem Benutzerkontext ausgeführt werden, indem ein einzelnes Profil verwendet wird. Wenn derselbe Benutzer versucht, sich mit einem zweiten Profil anzumelden, wird der Benutzer durch diesen Versuch mit der vorhandenen Outlook-Sitzung verknüpft. Wenn der Benutzer versucht, eine andere Kopie von Outlook (oder OOM) aus einem anderen Benutzerkontext zu starten, schlägt der Versuch fehl. Wenn eine Anwendung beispielsweise die Identität eines anderen Benutzers angibt, z. B. eine Windows-Dienstanwendung, schlägt der Versuch fehl. Dieser Fehler hat unvorhersehbare Ergebnisse, z. B. ein modales Dialogfeld oder ein Anwendungsfehler, der dazu führt, dass Outlook nicht mehr auf das System reagiert.

  • OOM startet den MAPI-Spooler während der Anmeldung immer. MAPI-Clientanwendungen, die als Windows-Dienstanwendungen ausgeführt werden, müssen bei der Anmeldung beim MAPI-Subsystem mehrere Einschränkungen einhalten. Da Outlook nicht für die Ausführung als Windows-Dienstanwendung konzipiert wurde, werden diese Konventionen nicht befolgt.

    Weitere Informationen finden Sie unter Einführung in Windows-Dienstanwendungen.

  • Einige Aktionen, die das OOM verwenden, lösen modale Dialogfelder aus, die nicht verhindert werden können und die ein Eingreifen des Benutzers erfordern. Dies würde dazu führen, dass die Anwendung zu hängen scheint.

Es wird empfohlen, in Ihren Windows-Dienstanwendungen anstelle des OOM den erweiterten MAPI-Code zu verwenden. Wenn der Code nicht direkt mit Outlook arbeiten muss und stattdessen für das Postfach in Exchange ausgeführt werden kann, sollten Sie die Verwendung von Exchange-APIs wie Graph, Exchange REST und Exchange Web Services (EWS) in Betracht ziehen.

Referenz

Weitere Informationen finden Sie unter Überlegungen zur serverseitigen Automatisierung von Office.