Pregunta

Tenemos un servicio de Windows que se ejecuta en el servidor 2003. Abre un documento de Word de origen usando la interoperabilidad de Word y luego hace algunas cosas con él. También hace lo mismo con los archivos Excel y PowerPoint.

Recientemente hemos intentado mover este servicio a una máquina con Windows 2008 Server y estamos teniendo problemas reales con él.

COMException en Microsoft.Office.Interop.Excel.Workbooks.Open COMException en Microsoft.Office.Interop.Word.Documents.Open

Recibo las excepciones anteriores cuando el servicio de Windows se ejecuta en 2008 Server. Mirando el Administrador de tareas, la aplicación se carga bien, pero luego se cierra nuevamente poco después.

He leído cosas sobre Vista y Server 2008 que ya no tienen una Session0, y he intentado cambiar las propiedades de seguridad de Office DCOM en consecuencia, incluido el cambio de la identidad del usuario que las ejecuta a Integrado, pero fue en vano.

¿Alguien sabe si esto es posible? Este es un aspecto fundamental de nuestro sistema, por lo que debemos ser capaces de hacerlo.

Gracias

¿Fue útil?

Solución

He tenido problemas para automatizar Office desde un servicio de Windows en Windows Server 2008, aunque eso funciona bien en Windows Server 2003. El problema también ocurre en la convocatoria abierta, por lo que puede ser el mismo problema.

Intenté seguir los consejos de H Ogawa en este hilo de MSDN , y parecía funcionar. Es extraño, pero felicitaciones al Sr. Ogawa por descubrirlo.

Resumen del 'Hack de Ogawa': cree una carpeta de escritorio para el perfil del sistema, como:

 C:\Windows\System32\config\systemprofile\Desktop

y , si se ejecuta en una máquina de 64 bits, cree otra , como:

 C:\Windows\SysWOW64\config\systemprofile\Desktop

Además, las carpetas necesitan permiso de escritura para cualquier usuario que esté "conduciendo" Oficina.


[Editar: URL de enlace corregida]

[Edición 2: aclaró que en Windows de 64 bits, necesita ambas carpetas, no solo la WOW64]

Otros consejos

Si está utilizando Apache, es posible que también deba seguir estos pasos para que MS Word funcione correctamente (junto con todo lo que se describe en otras respuestas):

A continuación se muestra una captura de pantalla que muestra los dos cuadros de diálogo que deberá mostrar: ingrese la descripción de la imagen aquí

Para Apache:

Servicios- > Apache- > Haga clic derecho (Propiedades) - > pestaña Iniciar sesión

MS Word:

Inicie dcomcnfg.exe- > Console Root- > Component Services- > Computers- > My Computer- > DCOM Config- > Find Microsoft Application- > Right Click (Properties) - > Identity Tab

** si no puede encontrar el MS Word, asegúrese de iniciar la configuración DCOM correcta (64 bits frente a 32 bits) dependiendo de la versión de Office que haya instalado.

Hay dos opciones aquí, puede configurar Apache para que use Cuenta del sistema local y marque la casilla de verificación para PERMITIR la interacción con el escritorio. Si hace esto, debe configurar la Identidad para MS Word en Usuario interactivo .

De lo contrario, debe configurar ambos para el mismo usuario (idealmente el usuario que ha iniciado sesión) como se muestra en la imagen.

Bueno, necesitará ejecutar " MMC -32 " (símbolo del sistema) para iniciar MMC de 32 bits y luego agregar Servicios de componentes (menú Archivo > Agregar / Eliminar complementos)

luego siga una de estas instrucciones:

http://theether.net/download/Microsoft/kb/288366.html

Esto también sucede en Vista con UAC habilitado. Es posible que desee intentar configurar la identidad de DCOM para que sea una cuenta de administrador y volver a probarla.

También recientemente comencé a tener este problema en un cuadro de XP tratando de abrir libros de trabajo en Excel a través de servicios de interoperabilidad, pero aún no he encontrado una solución. Yo mismo quisiera cualquier otra información que la comunidad pueda lanzar allí ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top