Het Outlook-objectmodel is niet geschikt om te worden uitgevoerd in een Windows-service

Origineel KB-nummer: 237913

Samenvatting

Het Outlook Object Model (OOM) is niet geschikt voor gebruik vanuit een toepassing die is ontworpen om te worden uitgevoerd als of voortgebracht door een Windows-servicetoepassing. Dit omvat ASP-toepassingen (Active Server Page) die worden uitgevoerd onder IIS (Internet Information Service) en toepassingen die samen met de AT Scheduler- of Task Scheduler-services worden uitgevoerd.

OOM is een automatiseringsmodel voor Outlook dat is ontworpen om te worden uitgevoerd in de sessie van een aangemelde gebruiker waarin een gebruiker kan reageren op dialoogvensters.

Dit is een ontwerpbeperking van Outlook.

Meer informatie

OOM heeft vier belangrijke beperkingen waardoor deze als volgt niet geschikt is voor gebruik in een Windows-servicetoepassing:

  • MAPI slaat profielen voor elke gebruiker op onder de HKEY_CURRENT_USER hive van het register. Deze registercomponent wordt niet geladen wanneer een Windows-servicetoepassing wordt uitgevoerd. Dit specifieke probleem kan misleidend zijn omdat de ontwikkelaar tijdens een ontwikkelingscyclus interactief is aangemeld bij het systeem. Hierdoor wordt de HKEY_CURRENT_USER hive geladen, zodat alles werkt zoals verwacht. Nadat de service is getest zonder dat de eigenaar van het profiel interactief is aangemeld, kan de service het profiel niet vinden.

  • Slechts één exemplaar van Outlook (de toepassing die het Outlook-objectmodel exporteert) kan tegelijk in één gebruikerscontext worden uitgevoerd met behulp van één profiel. Als dezelfde gebruiker zich probeert aan te melden met behulp van een tweede profiel, wordt de gebruiker met deze poging aan de bestaande Outlook-sessie gekoppeld. Als de gebruiker probeert een andere kopie van Outlook (of OOM) te starten vanuit een andere gebruikerscontext, mislukt de poging. Als een toepassing bijvoorbeeld een andere gebruiker nabootst, zoals een Windows-servicetoepassing, mislukt de poging. Deze fout heeft onvoorspelbare resultaten, zoals een modaal dialoogvenster of een toepassingsfout waardoor Outlook niet meer reageert op het systeem.

  • OOM start altijd de MAPI-spooler tijdens het aanmelden. MAPI-clienttoepassingen die worden uitgevoerd als Windows-servicetoepassingen, moeten verschillende beperkingen volgen wanneer ze zich aanmelden bij het MAPI-subsysteem. Omdat Outlook niet is ontworpen om te worden uitgevoerd als een Windows-servicetoepassing, worden deze conventies niet gevolgd.

    Zie Inleiding tot Windows-servicetoepassingen voor meer informatie.

  • Sommige acties die gebruikmaken van de OOM verhogen modale dialoogvensters die niet kunnen worden voorkomen en waarvoor tussenkomst van de gebruiker is vereist. Hierdoor lijkt de toepassing vast te hangen.

U wordt aangeraden uitgebreide MAPI-code te gebruiken in plaats van de OOM in uw Windows-servicetoepassingen. Als de code niet rechtstreeks met Outlook hoeft te werken en in plaats daarvan kan worden uitgevoerd in het postvak in Exchange, kunt u overwegen Exchange-API's te gebruiken, zoals Graph, Exchange REST en Exchange Web Services (EWS).

Verwijzing

Zie Overwegingen voor automatisering aan de serverzijde van Office voor meer informatie.