O Modelo de Objetos do Outlook não é adequado para ser executado num serviço Windows

Número original da BDC: 237913

Resumo

O Modelo de Objeto do Outlook (OOM) não é adequado para ser utilizado a partir de uma aplicação que foi concebida para ser executada ou gerada por uma aplicação do Serviço Windows. Isto inclui aplicações ASP (Active Server Page) que são executadas no Serviço de Informação Internet (IIS) e aplicações que são executadas em conjunto com os serviços AT Scheduler ou Programador de Tarefas.

O OOM é um modelo de automatização para o Outlook que foi concebido para ser executado numa sessão de utilizador com sessão iniciada na qual um utilizador pode responder a caixas de diálogo.

Esta é uma limitação de design do Outlook.

Mais informações

O OOM tem quatro limitações principais que o tornam inadequado para utilização numa aplicação do Serviço Windows, da seguinte forma:

  • A MAPI armazena perfis para cada utilizador no HKEY_CURRENT_USER ramo de registo. Este ramo de registo não é carregado quando uma aplicação do Serviço Windows é executada. Este problema específico pode ser enganador porque, durante um ciclo de desenvolvimento, o programador tem sessão iniciada no sistema interativamente. Isto faz com que o HKEY_CURRENT_USER ramo de registo seja carregado para que tudo funcione conforme esperado. Depois de o serviço ser testado sem o proprietário do perfil com sessão iniciada interativamente, o serviço não consegue localizar o perfil.

  • Apenas uma instância do Outlook (a aplicação que exporta o Modelo de Objetos do Outlook) pode ser executada de cada vez num contexto de utilizador através de um único perfil. Se o mesmo utilizador tentar iniciar sessão com um segundo perfil, esta tentativa associa o utilizador à sessão do Outlook existente. Se o utilizador tentar iniciar outra cópia do Outlook (ou OOM) a partir de um contexto de utilizador diferente, a tentativa falha. Por exemplo, se uma aplicação representar um utilizador diferente, como uma aplicação do Serviço Windows, a tentativa falhará. Esta falha tem resultados imprevisíveis, como uma caixa de diálogo modal ou um erro de aplicação que faz com que o Outlook deixe de responder ao sistema.

  • O OOM inicia sempre o spooler MAPI durante o início de sessão. As aplicações cliente MAPI que são executadas como aplicações do Serviço Windows têm de seguir várias limitações quando iniciam sessão no subsistema MAPI. Uma vez que o Outlook não foi concebido para ser executado como uma aplicação do Serviço Windows, estas convenções não são seguidas.

    Para obter mais informações, veja Introdução às Aplicações de Serviço do Windows.

  • Algumas ações que utilizam o OOM criam caixas de diálogo modais que não podem ser impedidas e que requerem a intervenção do utilizador. Isto faria com que a aplicação parecesse estar bloqueada.

Recomendamos que utilize o código MAPI Expandido em vez do OOM nas suas aplicações do Serviço Windows. Se o código não tiver de funcionar diretamente com o Outlook e, em vez disso, puder ser executado na caixa de correio no Exchange, deve considerar a utilização de APIs do Exchange, como Graph, Exchange REST e Exchange Web Services (EWS).

Referência

Para obter mais informações, veja Considerações sobre a automatização do lado do servidor do Office.