El modelo de objetos de Outlook no es adecuado para ejecutarse en un servicio de Windows

Número de KB original: 237913

Resumen

El modelo de objetos de Outlook (OOM) no es adecuado para su uso desde una aplicación que está diseñada para ejecutarse como una aplicación de servicio de Windows o generarla. Esto incluye aplicaciones de página de Active Server (ASP) que se ejecutan en Internet Information Service (IIS) y aplicaciones que se ejecutan junto con los servicios programador de AT o Programador de tareas.

OOM es un modelo de automatización para Outlook que está diseñado para ejecutarse en la sesión de un usuario que ha iniciado sesión en la que un usuario puede responder a cuadros de diálogo.

Es una limitación de diseño de Outlook.

Más información

OOM tiene cuatro limitaciones principales que hacen que no sea adecuado para su uso en una aplicación de servicio de Windows, como se indica a continuación:

  • MAPI almacena perfiles para cada usuario en el HKEY_CURRENT_USER subárbol del Registro. Este subárbol del Registro no se carga cuando se ejecuta una aplicación de servicio de Windows. Este problema concreto puede ser engañoso porque, durante un ciclo de desarrollo, el desarrollador ha iniciado sesión en el sistema de forma interactiva. Esto hace que el HKEY_CURRENT_USER subárbol se cargue para que todo funcione según lo esperado. Después de probar el servicio sin que el propietario del perfil haya iniciado sesión de forma interactiva, el servicio no puede encontrar el perfil.

  • Solo una instancia de Outlook (la aplicación que exporta el modelo de objetos de Outlook) se puede ejecutar a la vez en un contexto de usuario mediante un único perfil. Si el mismo usuario intenta iniciar sesión con un segundo perfil, este intento une al usuario 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 impredecibles, como un cuadro de diálogo modal o un error de aplicación que hace que Outlook deje de responder al sistema.

  • OOM siempre inicia la cola MAPI durante el inicio de sesión. Las aplicaciones cliente MAPI que se ejecutan como aplicaciones de servicio de Windows deben seguir varias limitaciones al iniciar sesión en el subsistema MAPI. Dado que Outlook no estaba diseñado para ejecutarse como una aplicación de servicio de Windows, estas convenciones no se siguen.

    Para obtener más información, vea Introducción a las aplicaciones de servicio de Windows.

  • Algunas acciones que usan OOM generan cuadros de diálogo modales que no se pueden evitar y que requieren la intervención del usuario. Esto haría que la aplicación pareciera bloquearse.

Se recomienda usar código MAPI extendido en lugar de OOM en las aplicaciones de servicio de Windows. Si el código no tiene que funcionar directamente con Outlook y, en su lugar, puede ejecutarse en el buzón de Exchange, debe considerar la posibilidad de usar las API de Exchange, como Graph, REST de Exchange y Exchange Web Services (EWS).

Referencia

Para obtener más información, vea Consideraciones para la automatización del lado servidor de Office.