Pregunta

Estoy tratando de hacer interoperabilidad de Office 2003 usando C # ASP.NET en un servidor que ejecuta Windows 2003 de 64 bits (aunque estoy ejecutando IIS en modo de 32 bits) y obtengo mensajes de error como:

La configuración de permisos predeterminada de la máquina no otorga permiso de activación local para la aplicación del servidor COM con CLSID {00024500-0000-0000-C000-000000000046} al dominio de usuario \ nombre de usuario SID (S-X-X-XX-XXX-XXXX-XXX-XXXXX). Este permiso de seguridad se puede modificar utilizando la herramienta administrativa de Servicios de componentes.

¿Alguien sabe lo que necesito cambiar para que esto funcione? Gracias si puedes ayudar.

EDITAR - Esto funcionaba bien en un servidor de 32 bits.

EDITAR 2: a nadie parece gustarle esto, pero no estoy seguro de que exista otra forma dados nuestros requisitos. Si puede pensar en una, he abierto otra pregunta alternativa a la oficina -interop-for-document-generation

¿Fue útil?

Solución 4

He encontrado la respuesta. Busque el problema guid en regedit. Luego encontrará una clave que contiene dos valores: el nombre del componente y su guía en los servicios de componentes.

Otros consejos

Ninguna de las aplicaciones de Office funciona correctamente cuando se llama desde un entorno de servidor. Sus interfaces COM están destinadas a la automatización de escritorio, no a la automatización desde una aplicación de servidor. Todo lo que hagas para intentar que funcionen implicará hacks construidos sobre hacks, y está condenado al fracaso.

Esto deja de lado el hecho de que no tiene licencia para ejecutarlos desde una aplicación de servidor.


Corrección: el artículo de KB Consideraciones para el lado del servidor La automatización de Office de hecho dice que tiene licencia para la automatización del lado del servidor de los productos de Office para uso solo si todos los clientes tienen licencia:

Además de los problemas técnicos, también debe considerar los problemas de licencia. Las pautas de licencia actuales evitan que las aplicaciones de Office se utilicen en un servidor para atender las solicitudes de los clientes, a menos que esos clientes tengan copias autorizadas de Office. El uso de la automatización del lado del servidor para proporcionar la funcionalidad de Office a las estaciones de trabajo sin licencia no está cubierto por el Acuerdo de licencia de usuario final (EULA).

Por otro lado, ese artículo de KB enumera una gran cantidad de razones para nunca hacer esto. Incluyen:

  • Identidad de usuario
  • Interactividad con el escritorio
  • Reentrada y escalabilidad
  • Resiliencia y estabilidad
  • Seguridad del lado del servidor

Recomiendo este artículo de KB a cualquiera que esté considerando la automatización del lado del servidor de los productos de Office.

Como dice John Saunders, dejando de lado los problemas de licencia, simplemente no conseguirá que la automatización de Office funcione correctamente en el lado del servidor.

Consulte el SDK de OpenXML, que puede aprovechar para lograr el mismo resultado final. DocumentReflector en particular lo ayudará con esto.

http://blogs.msdn.com/alspeirs/archive/2008/12/09/generating-documents-with-c-open-xml-and-the-document-reflector.aspx

http: // www .microsoft.com / downloads / details.aspx? FamilyID = c6e744e5-36e9-45f5-8d8c-331df206e0d0 & amp; DisplayLang = es

Intente ejecutar App Pool con una identidad más privilegiada (haga clic con el botón derecho en AppPool y seleccione la pestaña Identidad).

Como los otros mencionaron, Microsoft no admite el uso de interoperabilidad COM en un entorno de servidor.

Dicho esto, no especificó si está hablando de ASP.NET, WinForms, una aplicación de consola o ???. Es posible que funcione si crea una aplicación de consola y establece la CPU de destino en el administrador de configuración de Visual Studio en x86 en lugar de Cualquier CPU. Esto obligará a su aplicación a ejecutarse en modo de 32 bits en el servidor de 64 bits. Por supuesto, todavía hay una serie de otros problemas con los que puede encontrarse, como problemas de permisos.

SpreadsheetGear para .NET se prueba y admite en entornos W2K3 de 64 bits y W2K8 de 64 bits.

Descargo de responsabilidad: soy dueño de SpreadsheetGear LLC

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