visual studio office microsoft leer example create c# asp.net vb.net office-interop

c# - leer - microsoft.office.interop.excel visual studio 2017



El acceso al modelo de objetos de Office Word a través de los resultados de asp.net "falló debido al siguiente error: 80070005 Acceso denegado". (5)

He desarrollado un sitio web que permite a los usuarios cargar documentos de oficina y luego utiliza el modelo de objetos de oficina para convertir el documento a un archivo HTML que luego muestra en un iFrame.

Por supuesto, he incluido referencias a Office.interop.word, y el sitio funciona bien en mi máquina de desarrollo. Cuando lo cargué en mi servidor de producción, el sitio funciona bien hasta que intento cargar un documento. Inicialmente recibí un error similar que decía "objeto COM no registrado". Me di cuenta de que Word no estaba instalado en mi servidor de producción. Así que instalé word y ahora cuando el servidor intenta acceder al modelo de objeto word recibo el siguiente error:

La recuperación de la fábrica de clase COM para el componente con CLSID {000209FF-0000-0000-C000-000000000046} falló debido al siguiente error: 80070005 Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))

Busqué en el registro el CLSID correspondiente y encontré una carpeta correspondiente. Agregué control total a la cuenta IUSR_ y, debido a la persistencia del error, finalmente agregué el control total a "todos" y garanticé que estos permisos se heredaran hasta el resto de la carpeta. Luego agregué el control total a IUSR_ y finalmente agregué control total a "todos" en mi carpeta de microsoft office.

No sé qué otros permisos otorgar y dónde para hacer que este error "Acceso denegado" desaparezca. Debo concederlos en el lugar equivocado, porque por lo que sé, no puedo ser más permisivo que "Todos" "Control total".

¿Alguien puede arrojar algo de luz?


Bien, resolví este problema con estos pasos:

  1. En la línea de comando, coloque DCOMCNFG
  2. Expanda la raíz de la consola> Servicio de componentes> Equipos, haga clic con el botón derecho en Mi PC y seleccione Propiedades
  3. En la pestaña Seguridad COM> Permisos de inicio y activación, haga clic en Editar predeterminado
  4. Agregar el usuario (por ejemplo, IIS_IUSRS) o servicio
  5. Marque Permitir el inicio local y la activación local

Entonces Excel, Word y otras aplicaciones pueden funcionar, buena suerte.


Busque en el Visor de eventos, en Registros de Windows, Sistema, en la máquina del servidor donde está instalado Word. ¿Ve un evento registrado que dice algo similar a:

La configuración de permisos predeterminada de la máquina no concede permiso de activación local para la aplicación del servidor COM con CLSID {148BEE7F-6123-41EE-8CCA-E390902BD0D8} al usuario SomeMachine / SomeUser SID (S-1-5-21-483881670-2168941642- 1987552629-1003) desde la dirección LocalHost (usando LRPC). Este permiso de seguridad se puede modificar utilizando la herramienta administrativa de Servicios de componentes.

Si es así, ejecute DCOMCNFG.EXE, vaya a Servicios de componentes, Computadoras, Mi PC (o el nombre), Configuración DCOM (y puede simplemente responder "No" si le pregunta si desea arreglar algo) y si el registro de eventos el mensaje es para una aplicación , luego búsquelo por el nombre en el mensaje de registro de eventos, aquí por nombre del elemento, y si el mensaje de registro de eventos es para un CLSID (como el ejemplo anterior), encuéntrelo en el CLSID "{148B .. .} "(eso es solo un CLSID aleatorio que pegué - probablemente coincidirá con su 000209FF ... anterior), y seleccione Más acciones ... Propiedades, a la pestaña Seguridad.

Aquí puede seleccionar [x] Personalizar y luego Editar, para agregar permisos para que la cuenta de usuario apropiada se active y acceda a la aplicación o clase DCOM requerida.

Es solo una suposición, pero pruébelo, o algo similar (es decir, otorgando acceso al CLSID a través de DCOMCNFG).


Esto funcionó para mí:

  1. En la línea de comando, coloque DCOMCNFG
  2. Servicios de componentes -> Computadoras -> Mi PC -> Configuración DCOM
  3. Buscar "Microsoft Word 97 - Documento 2003" (Si falta, compruebe si su Word también es de 64 bits (si su Windows es) si no se ejecuta mmc comexp.msc /32 lugar de DCOMCNFG en el paso 1 como lo sugiere Darkseal here )
  4. Haga clic derecho -> Propiedades
  5. Vaya a Seguridad de pestañas y edite los botones de opción "Personalizar" para que IIS_IUSRS pueda tener derechos para iniciarse y acceder
  6. Vaya a Tab Identity y elija "El usuario interactivo"
  7. Aplicar cambios e intentar de nuevo
  8. Si todo esto falla, vaya también a la pestaña "General" y en el menú desplegable "Nivel de autenticación", seleccione "Ninguno".

Si no puede encontrar la aplicación de Microsoft Word en DCOM

En el sistema de 64 bits con Office de 32 bits, pruebe esto:

  1. Artículo de lista
  2. comienzo
  3. correr
  4. mmc-32
  5. Archivo
  6. Añadir Eliminar complemento
  7. Servicios de componentes
  8. Añadir
  9. DE ACUERDO
  10. Raíz de la consola
  11. Servicios de componentes
  12. Ordenadores
  13. Mi computadora
  14. Configuración de DCOM

después de esto

  1. Buscar "Microsoft Word 97 - Documento 2003" (Si falta, compruebe si su palabra también es de 64 bits (si su Windows es))
  2. Haga clic derecho -> Propiedades
  3. Vaya a Seguridad de pestañas y edite los botones de opción "Personalizar" para que IIS_IUSRS pueda tener derechos para iniciarse y acceder
  4. Vaya a Tab Identity y elija "El usuario interactivo". Aplique cambios y vuelva a intentarlo.
  5. Si todo esto falla, vaya también a la pestaña "General" y en el menú desplegable "Nivel de autenticación", seleccione "Ninguno".

Tuve mis dificultades para descifrar esto usando la respuesta aceptada, porque el registro del documento Microsoft Word 97 - 2003 no figuraba entre los elementos de la configuración DCOM. Encontré la solución en esta publicación de blog de Technet , donde explicaron correctamente el problema:

Es importante tener en cuenta que si instala Microsoft Office de 32 bits en una máquina de 64 bits, es posible que necesite usar el administrador de configuración DCOM de 32 bits para ver los programas, según su sistema operativo.

En los sistemas operativos x64 de Windows XP a Windows Server 2008, la versión de 64 bits de DCOMCNFG.EXE no configura correctamente las aplicaciones DCOM de 32 bits para la activación remota. Este comportamiento hace que los componentes que están destinados a ser activados de forma remota se activen localmente. Este comportamiento no ocurre en Windows 7 y Windows Server 2008 R2 y versiones superiores.

Ref .: http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426(v=vs.85).aspx

Y también sugirió utilizar el siguiente comando de línea de comandos (en lugar de DCOMCNFG ) como una solución efectiva:

mmc comexp.msc /32

Lo cual obliga a cargar el administrador de configuración DCOM de 32 bits en lugar del administrador de 64 bits y permite realizar los pasos descritos en la respuesta aceptada. Si esto todavía no funciona, el artículo también explica una serie de otras soluciones posibles.

Para obtener más información sobre este tema, también puede leer esta publicación .