[c#] Consulta sobre error DCOM de Word.

500 views
Skip to first unread message

Javier Osvaldo Chércoles

unread,
Feb 5, 2013, 2:59:45 PM2/5/13
to Dario Quintana
Gente, disculpen pero les escribo porque ya no se que otra cosa revisar. Estoy tratando de instanciar un documento de word y cuando hago .Documents.open(nombre del achivo), no hace nada, y mas tarde en otro comando me tira un error, diciendo que no tiene documentos abiertos. ¿Que puede ser? ¿Alguien tiene idea?

Gracias, Javier.

Codigo:

            Application app = new Application();
            Document doc;
            object missing = System.Type.Missing;
            string RutaCarta = @"C:\Users\Public\Documents\prueba.doc";
            try
            {
                doc = app.Documents.Open(RutaCarta);

                app.Visible = false;

                app.ActiveDocument.ExportAsFixedFormat(@"C:\Users\Public\Documents\prueba.pdf", 
                                Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF, false, 
                                Microsoft.Office.Interop.Word.WdExportOptimizeFor.wdExportOptimizeForPrint, 
                                Microsoft.Office.Interop.Word.WdExportRange.wdExportAllDocument);
                doc.Close();
            }
            catch(Exception ex)
            {
                //Manejar la excepción....
            }
            finally
            {
                app.Quit();
            }

Error:

Se detectó System.Runtime.InteropServices.COMException
  HelpLink=wdmain11.chm#37016
  Message=El comando no está disponible porque no hay ningún documento abierto.
  Source=Microsoft Word
  ErrorCode=-2146824040
  StackTrace:
       at Microsoft.Office.Interop.Word.ApplicationClass.get_ActiveDocument()
       at WebDePruebas._Default.btnExportar_Click(Object sender, EventArgs e) in C:\JChercoles\Pruebas\WebDePruebas\WebDePruebas\Default.aspx.cs:line 30
  InnerException: 

Desde ya muchas gracias.

Javier.

Angel "Java" Lopez

unread,
Feb 5, 2013, 4:35:56 PM2/5/13
to Dario Quintana

Primera prueba, que pasa cuando no pones app.Visible = false?

Oscar Zárate

unread,
Feb 5, 2013, 4:44:13 PM2/5/13
to Dario Quintana
Es muy posible que el usuario que ejecuta la Aplicación ASP.NET no tenga acceso a instanciar word.
 
Probá tu código en una Console Applicacion para descartar problemas de seguridad.

2013/2/6 Javier Osvaldo Chércoles <joche...@hotmail.com>

Angel "Java" Lopez

unread,
Feb 6, 2013, 4:42:59 AM2/6/13
to Dario Quintana

Ah! Recien me doy cuenta que es una aplicacion ASP.NET

 

Hmmmm… si fuera como dice Maese Zarate, porque da el error de “no tiene documentos abiertos”? Exploraria primero que tenga acceso al c:\.... donde esta el documento.

 

Una prueba alternativa, tener el .doc en el App_Data, y abrilo usando como nombre Server.MapPath(“~/App_Data/AcaExplicoLaFusionFria.docx”)

 

Angel “Java” Lopez

@ajlopez

Javier Osvaldo Chércoles

unread,
Feb 6, 2013, 7:55:20 AM2/6/13
to Dario Quintana
Hola muchachos, lamentablemente ninguna de las propuestas dio buenos frutos. En primer instancia no me dejaba instanciar el objeto Word.Application() y era un problema del usuario que se configuro en el application pool, y lo solucione poniendo mi usuario y dominio.
Pero cuando quiero abrir el documento, me sale el error que les pase. Hice todo lo que me comentaron y no funciona, hace lo mismo que les pase.

Saludos.

Javier.


From: webm...@ajlopez.com
To: joche...@hotmail.com
Subject: [c#] Consulta sobre error DCOM de Word.
Date: Wed, 6 Feb 2013 06:42:59 -0300

Jorge Monsalvo

unread,
Feb 6, 2013, 8:27:19 AM2/6/13
to Dario Quintana
Javier,
 
Cuando decis que apps.Documents.Open no hace nada. ¿Significa que doc es nulo?
Dado que la aplicación no está activa por el app.visible = false; ¿Probaste usar la coleccion Documents para llamar al documento en lugar de usar ActiveDocument? O al menos probar un  app.Documents["prueba.doc"].Select.
 
Saludos

De: Javier Osvaldo Chércoles <joche...@hotmail.com>
Para: Jorge Monsalvo <jm_tec...@yahoo.com.ar>
Enviado: miércoles, 6 de febrero de 2013 9:55
Asunto: [c#] Consulta sobre error DCOM de Word.

Hola muchachos, lamentablemente ninguna de las propuestas dio buenos frutos. En primer instancia no me dejaba instanciar el objeto Word.Application() y era un problema del usuario que se configuro en el application pool, y lo solucione poniendo mi usuario y dominio.
Pero cuando quiero abrir el documento, me sale el error que les pase. Hice todo lo que me comentaron y no funciona, hace lo mismo que les pase.

Saludos.

Javier.

Javier Osvaldo Chércoles

unread,
Feb 6, 2013, 8:37:12 AM2/6/13
to Dario Quintana
Si Jorge cuando digo que apps.Documents.Open no hace nada, es que doc, termina en null.
Probe lo que me comentaste, y tira error, en este caso, "Nombre de archivo incorrecto", de hecho, si me fijo en el count de la coleción de documentos, me indica "0".

Esto en otro equipo, con Visual Studio 2008 esta funcionando, no se porque en VS 2010 no.

Me fije todas las configuraciones de seguridad, que encontré en la web y no logro resolverlo.

Por otra parte el Microsoft Word Application, no lo tenia en el Component Service, DCOM, del equipo, por lo que tocando el registro, agregue las key necesarias y apareció, es lo único que tengo de diferente con el otro equipo.

Gracias.


Date: Wed, 6 Feb 2013 05:27:19 -0800
From: jm_tec...@yahoo.com.ar

Subject: [c#] Consulta sobre error DCOM de Word.

Jorge Monsalvo

unread,
Feb 6, 2013, 9:02:51 AM2/6/13
to Dario Quintana
Si, la pregunta apuntaba mas a diferenciar "no encuentra el documento" de "no abre el documento".
Lo único que se me ocurre para estar seguros que no es un problema de permisos, dlls no registradas y esas cosas es hacer una página simple en ASP 3.0
 
Set WordApp = CreateObject("word.application")
Set Doc =  WordApp.Documents.Add("C:\Users\Public\Documents\prueba.doc")
Set DocNew = WordApp.Documents.Add()
 
y ver que pasa. Con esto te sacas de encima la preocupacion del VS.
 
Saludos
 
 
De: Javier Osvaldo Chércoles <joche...@hotmail.com>
Para: Jorge Monsalvo <jm_tec...@yahoo.com.ar>
Enviado: miércoles, 6 de febrero de 2013 10:37
Asunto: [c#] Consulta sobre error DCOM de Word.

Si Jorge cuando digo que apps.Documents.Open no hace nada, es que doc, termina en null.
Probe lo que me comentaste, y tira error, en este caso, "Nombre de archivo incorrecto", de hecho, si me fijo en el count de la coleción de documentos, me indica "0".

Esto en otro equipo, con Visual Studio 2008 esta funcionando, no se porque en VS 2010 no.

Me fije todas las configuraciones de seguridad, que encontré en la web y no logro resolverlo.

Por otra parte el Microsoft Word Application, no lo tenia en el Component Service, DCOM, del equipo, por lo que tocando el registro, agregue las key necesarias y apareció, es lo único que tengo de diferente con el otro equipo.

Gracias.

Javier Osvaldo Chércoles

unread,
Feb 6, 2013, 9:52:59 AM2/6/13
to Dario Quintana
Gracias por tu tiempo Jorge. Hice la prueba y no me deja instanciar el objecto Word.Application, que entiendo es un error parecido al que me dio en su momento, y lo solucione para .Net pero para esto na anda.

Gracias, nuevamente.


Date: Wed, 6 Feb 2013 06:02:51 -0800

Oscar Zárate

unread,
Feb 6, 2013, 6:16:30 PM2/6/13
to Dario Quintana
Javier,
 
Te repito lo que dije de entrada.
En este momento, vos tenes muchos factores que pueden influenciar la comunicación con el objeto COM.
Lo que yo haría es aislar esos "ruidos".
 
Creá una Console Application y lográ que la comunicación entre tu programa y el objeto COM funcionen como lo esperas y luego lo pasas a una aplicación web.
Lográ crear el objeto. Ponelo visible como te dicen los otros foristas. Baby steps :-)
 
Por otro lado, si te funciona en una máquina y no te funciona en la otra, eso indica que el problema por la instalción y los permisos no por la versión de Visual Studio que estas usando. En Visual Studio 2010 podes apuntar a las mismas versiones del framework que podrías con Visual Studio 2008 (esa es otra variable a analizar, estas usando la misma versión del .NET framework? estas usando la misma versión de Word? Tenes el mismo usuario y los mismos permisos en ambas máquinas?). Muchas variables.

2013/2/7 Javier Osvaldo Chércoles <joche...@hotmail.com>
Reply all
Reply to author
Forward
0 new messages