El modelo de objetos de Outlook no es adecuado para que se ejecute en un servicio de Windows

Se aplica a: Outlook 2016Outlook 2013Outlook 2010

Resumen


El modelo de objeto de Outlook (OOM) es apropiada para el uso de una aplicación que está diseñada para ejecutarse como o generada por una aplicación de servicio de Windows. Esto incluye aplicaciones de páginas Active Server (ASP) que se ejecutan en servicios de Internet Information Server (IIS) y aplicaciones que se ejecutan junto con el programador AT o servicios de programador de tareas.

OOM es un modelo de automatización de Outlook que está diseñado para ejecutarse en una sesión de los usuarios conectados en los que un usuario puede responder a cuadros de diálogo.Ésta es una limitación de diseño de Outlook.

Más información


OOM tiene cuatro principales limitaciones que lo hacen adecuado para su uso en aplicaciones de servicio de Windows, como sigue:

  • MAPI almacena los perfiles de cada usuario en la sección HKEY_CURRENT_USER del registro. Este subárbol del registro no está cargado cuando se ejecuta una aplicación de servicio de Windows. Este problema en concreto puede ser muy engañoso porque, durante un ciclo de desarrollo, el programador se suele estar conectado al sistema de forma interactiva. Esto hace que la sección HKEY_CURRENT_USER se cargue para que todo funcione como se esperaba. Después se prueba el servicio sin que el propietario del perfil iniciado sesión de forma interactiva, el servicio no puede encontrar el perfil.
  • Sólo una instancia de Outlook (la aplicación que exporta el modelo de objetos de Outlook) se puede ejecutar en un momento en el contexto de un usuario mediante un perfil único. Si el mismo usuario intenta iniciar sesión utilizando un segundo perfil, este intento une a la sesión de Outlook existente. Si el usuario intenta iniciar otra copia de Outlook (o OOM) desde un contexto de usuario diferente, se produce un error en el intento. Por ejemplo, si una aplicación suplanta a un usuario diferente, como una aplicación de servicio de Windows, se produce un error en el intento. Este error tiene resultados imprevisibles, como un cuadro de diálogo modal o un error de aplicación que hace que Outlook deje de responder al sistema.
  • OOM siempre comienza a la cola MAPI durante el inicio de sesión. Aplicaciones de cliente MAPI que se ejecutan como aplicaciones de servicio de Windows deben seguir varias limitaciones cuando se inicia sesión en el subsistema MAPI. Dado que Outlook no se diseñó para ejecutarse como una aplicación de servicio de Windows, no se siguen estas convenciones.  Para obtener más información, consulte el siguiente artículo de Docs:

Introducción a las aplicaciones de servicio de Windows

  • Algunas acciones que utilizan el OOM elevar los cuadros de diálogo modales, que no se puede evitar y que requieren la intervención del usuario. Esto haría que parece que se bloquea la aplicación.

Te recomendamos que usesCódigo de MAPI extendido en lugar de la OOM de su aplicaciones de servicios de Windows.Si no tiene el código trabajar con Outlook directamente y puede, en su lugar, se ejecuta en el buzón de Exchange, debe considerar mediante las API de Exchange, comoGráfico, resto de Exchange y los servicios Web Exchange (EWS).

Referencia


Para obtener más información, consulte el artículo siguiente de Microsoft Knowledge Base:

257757 Consideraciones para la automatización de servidor de Office