automation ms-word ms-office office-interop

automation - Automatizando MS Word en Server 2012 R2



ms-word ms-office (6)

Gracias por toda la ayuda OP y colaboradores. Después de crear la carpeta INetCache funcionó para mí. Hice lo siguiente para que todo funcione sin una sesión activa (WS2012 R2 / MS Office 2013 64x):

  1. Cree un usuario administrador local e inicie sesión para configurar las impresoras (impresión en archivo) y las opciones de palabra predeterminadas.
  2. Apunte la identidad de configuración DCOM al usuario administrador local creado.
  3. Cree el siguiente archivo: C: / Windows / SysWOW64 / config / systemprofile / AppData / Local / Microsoft / Windows / INetCac he

En primer lugar, no responda con el consejo genérico de no automatizar Word en un servidor o un enlace a la página web de MS sobre "cómo automatizar la palabra en un servidor si realmente lo necesita". Estoy consciente de esto.

Tengo un proceso que se ejecuta como un servicio de Windows y utiliza .Net OLE interoperabilidad para automatizar Office (principalmente solo Open y SaveAs). Este código ha funcionado de manera confiable durante 8 años en literalmente cientos de servidores usando muchas combinaciones de versiones de Windows y Office, tanto de 32 como de 64 bits, así que estoy feliz de que el mecanismo sea confiable. Hasta aquí...

Con Server 2012 R2, funciona con PowerPoint y Excel pero falla al intentar abrir un documento de Word:

System.Runtime.InteropServices.COMException (0x800A16A0): The file appears to be corrupted. at Microsoft.Office.Interop.Word.Documents.Open...

Mis observaciones hasta ahora que pueden o no ser relevantes:

  • falla en todos los documentos
  • funciona bien en Windows 8.1
  • el mismo problema ha sucedido tanto en el sitio del cliente como en nuestro entorno de prueba, por lo que es poco probable que sea puramente ambiental
  • mi aplicación está usando .Net 3.5
  • el código está vinculado a los ensamblados de interoperabilidad de 2003 (obviamente, las versiones de oficina posteriores son compatibles con la redirección de enlace de ensamblaje)
  • lo hemos probado con office 2013 tanto 32 como 64 bit con los mismos resultados, pero no hemos probado versiones anteriores de la oficina
  • falla si el servicio se está ejecutando como LocalSystem o como una cuenta de usuario estándar
  • si ejecutamos el proceso de servicio en primer plano (es decir, literalmente, haciendo doble clic en el ejecutable), el problema no ocurre

Obviamente todavía tengo cosas para investigar, pero me interesa saber si alguien más ha visto este problema específico, incluso si no lo ha resuelto. Tenga en cuenta que hay muchas dificultades y problemas con la automatización de oficinas, así que a menos que sus síntomas sean muy similares a los míos, probablemente no tenga el mismo problema.


Los mismos problemas aquí, pero tengo esto completamente resuelto ahora.

Tengo un Word 2013 en combinación con Windows 2012 R2 Server que se ejecuta en un proceso de servicio que hace todo lo que quiero sin la necesidad de iniciar una sesión interactiva. Lo uso para convertir documentos a archivos PDF. Dentro del servicio de Windows tengo un servicio WCF.

Crear carpetas: (reemplace System32 con Syswow64 dependiendo de si usa la edición x86 o x64 bit)

C: / Windows / System32 / config / systemprofile / AppData / Local / Microsoft / Windows / INetCache C: / Windows / System32 / config / systemprofile / Desktop

Último y más importante paso!

Start - run - dcomcnfg.exe

Propiedades abiertas -> Servicios de componentes - Configuración de DCOM - Documento de Microsoft Word 97 - 2003 (Tenga en cuenta que la versión no se menciona aquí pero que no importa Office 2013 la utilizará como configuración de DCOM)

Abrir pestaña Identidad. Configure la ejecución como una cuenta de administrador local. Hice algunas pruebas Word 2013 funcionará bien incluso si no se inicia ninguna sesión interactiva para el usuario.


Mi servicio usa MS Word para fusionar datos y funciones de concatenación. Estoy usando Word 2016 en Windows Server 2012 R2. Mi registro dice que Word está abierto, pero cuando se abre el documento se arroja un error.

Primero creé todas las 4 carpetas sugeridas:

C: / Windows / System32 / config / systemprofile / AppData / Local / Microsoft / Windows / INetCac he C: / Windows / System32 / config / systemprofile / Desktop C: / Windows / SysWOW64 / config / systemprofile / AppData / Local / Microsoft / Windows / INetCac he C: / Windows / SysWOW64 / config / systemprofile / Desktop

Solo después de crear el último directorio el problema fue resuelto.

No he usado DCOM config; mi aplicación usa una cuenta de usuario con privilegios de administración; no hubo necesidad de usar la cuenta LocalSystem con las opciones de "interacción con el escritorio".

Gracias.


Nosotros (Mi empresa) actualmente estamos enfrentando el mismo problema, es una copia exacta de su problema. Hemos completado exhaustivas pruebas en esta área y ahora estoy en conversaciones con el ingeniero de soporte de MS para tratar de encontrar una solución.

Desafortunadamente, esto es algo que no quieren que hagamos, creo que han reforzado la seguridad en Windows Server 2012 para evitar que las personas hagan esto.

Lo que hemos intentado que debería ayudarte:

  1. Servidor 2012 | Word 2007 | Ha fallado
  2. Servidor 2012 | Word 2010 | Ha fallado
  3. Servidor 2012 | Palabra 2013 | Ha fallado
  4. Cliente 8.1 | Palabra 2013 | Ha fallado

Nuestro problema se debe al hecho de que estamos corriendo la palabra con un usuario que no está asociado con el usuario del sistema LOCAL (es decir, el tipo de usuario que tiene cuando está conectado a la máquina) Windows simplemente no permitirá que esto suceda más.

Yo y el Ingeniero MS estamos trabajando en ventanas de "engaño" para pensar que Word está funcionando como un servicio local, sin embargo, el Ingeniero de MS dijo que era una posibilidad remota, y hasta ahora todo lo que hemos probado ha resultado en un fracaso. No se ve bien.

Lo siento, no tengo una respuesta para ti, pero supongo que es bueno saber que no estás solo.


Para algunas máquinas, debe ejecutar "mmc comexp.msc / 32" para establecer la configuración de DCOM para MS Word. Descubrí que teníamos que hacer esto cuando solo se instalaba la versión de Word de 32 bits.


Tuve el mismo problema con MsOffice 2010 (32 bits) y Windows Server 2012R2 (64 bits). Word, Excel, Powerpoint no funcionan con localAdmin.

Creé la carpeta C: / Windows / System32 / config / systemprofile / AppData / Local / Microsoft / Windows / INetCac ¡ como Andy y ahora funciona perfectamente!

Gracias Andy :)