Het Outlook-objectmodel is niet geschikt in een Windows-service uit te voeren

Van toepassing: Outlook 2016Outlook 2013Outlook 2010

Samenvatting


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

OOM is een automation-objectmodel van Outlook die is ontworpen om te worden uitgevoerd in een sessie voor aangemelde gebruikers in die een gebruiker op dialoogvensters reageren kan.Dit is een beperking van het ontwerp van Outlook.

Meer informatie


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

  • MAPI worden profielen voor elke gebruiker in de component HKEY_CURRENT_USER van het register opgeslagen. Dit onderdeel van het register wordt niet geladen wanneer de toepassing van een Windows-Service wordt uitgevoerd. Deze kwestie is nogal misleidend, omdat tijdens de ontwikkelingscyclus de ontwikkelaar meestal interactief is aangemeld bij het systeem. Hierdoor wordt de component HKEY_CURRENT_USER wordt geladen zodat alles werkt zoals verwacht. Nadat de service is getest zonder dat de eigenaar van het profiel interactief is aangemeld, wordt de service niet kan vinden het profiel.
  • Slechts één exemplaar van Outlook (de toepassing die het Outlook-objectmodel worden geëxporteerd) kunt uitvoeren op een tijdstip in de gebruikerscontext van een met behulp van één profiel. Als de gebruiker probeert aan te melden met een tweede profiel, voegt deze poging de gebruiker met de bestaande Outlook-sessie. Als de gebruiker probeert een ander exemplaar van Outlook (of een OOM) starten vanuit de context van een andere gebruiker, mislukt de poging. Bijvoorbeeld als een toepassing een andere gebruiker, zoals een toepassing voor Windows-Service imiteert, mislukt de poging. Deze fout heeft onvoorspelbare resultaten leiden, zoals een modaal dialoogvenster of een toepassingsfout dat ervoor zorgt Outlook dat niet meer reageert op het systeem.
  • OOM begint de MAPI-spooler altijd tijdens het aanmelden. MAPI-clienttoepassingen die worden uitgevoerd als de Service Windows-toepassingen verschillende beperkingen moeten volgen wanneer ze zich aanmelden op het MAPI-subsysteem. Omdat Outlook niet kan worden uitgevoerd als een Windows Service-toepassing is ontworpen, worden deze overeenkomsten niet gevolgd.  Zie voor meer informatie het volgende artikel in de documenten:

Inleiding tot Windows-toepassingen voor Service

  • Sommige acties die de OOM verhogen modale dialoogvensters niet kan worden voorkomen en die de tussenkomst van de gebruiker vereisen. Hierdoor zou de toepassing lijken te reageren.

Het is raadzaam dat u gebruiktExtended MAPI-code in plaats van de OOM in uw toepassingen voor Windows Service.Als de code niet werken met Outlook rechtstreeks en kan, in plaats daarvan worden uitgevoerd voor het postvak in Exchange, moet u rekening houden met Exchange-API's, zoalsGrafiek, REST Exchange en Exchange webservices (EWS).

Referentie


Raadpleeg het volgende artikel in de Microsoft Knowledge Base voor meer informatie:

257757 Overwegingen bij de automatisering van Office op servers