Estoy tratando de editar un documento de Word desde VB.NET utilizando en su mayor parte este código:Recuperando el generador de clases COM para el error componente, mientras que la generación de documento de Word
Cómo automatizar Word desde Visual Basic .NET para crear un nuevo documento http://support.microsoft.com/kb/316383
Funciona bien en mi máquina, pero cuando publico en el servidor me sale el siguiente error.
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
El error real ocurre cuando intento acaba de crear un objeto de aplicación palabra
Dim oWord As New Word.Application
mediante Visual Studio 2008 y VB.NET 3.5. Hice una referencia a la "Biblioteca de objetos de Microsoft Word 10.0" y veo el archivo Interop.Word.dll en el directorio bin.
El uso de MS Office 2003 en la máquina de desarrollo y Windows Server 2003
todavía bastante nuevo para .NET y no tienen mucho conocimiento acerca de servidor de ventanas, pero "UnauthorizedAccessException" suena como un problema de permisos. Me pregunto si alguien podría señalarme en la dirección correcta sobre lo que podría necesitar para darle acceso a mi pequeña aplicación para usar word.
Es bastante interesante cuando entré al sistema y ejecuté Word, ejecuté el instalador. Supongo que nadie corrió una palabra antes en este usuario. No resolvió mi problema pero me pregunto incluso sin el permiso si eso hubiera impedido que funcionara. No, mi código es una aplicación web. Si bien esta es una aplicación pequeña que rara vez se usa, nunca consideré qué sucedería si dos personas intentaran ejecutarla al mismo tiempo. Gracias por esa contribución. ¿Hay alguna forma de ver si alguien más está accediendo al objeto COM? Estoy bastante seguro de que no hay nada más, pero ni siquiera sabría dónde comprobar eso. – TheDPQ
La aplicación web se está ejecutando como ¿qué usuario? En IIS 7, por ejemplo, el grupo de aplicaciones se ejecutará como un sistema local que probablemente tendrá el mismo problema. –
Nuevamente disculpe mi ignorancia, pero ¿de qué está hablando es de "Servicio de red"? Es la identidad que el grupo de aplicaciones está configurado para usar. – TheDPQ