System.Runtime.InteropServices.COMException (0x800A03EC)

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() método Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() funciona bien en Windows Server 2003 y también en XP, pero no en Windows Server 2008. Lo copié como se lo dieron a todos los Dll y permisos

También probé todas las soluciones que se ofrecen en la red, como las configuraciones de Cultura y el permiso de DCOM.

Obteniendo el siguiente error:

System.Runtime.InteropServices.COMException (0x800A03EC): Excepción de HRESULT: 0x800A03EC

a

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs (Object Filename, Object FileFormat, Object Password, Object WriteResPassword, Object ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)

Por favor ayuda ..!

Respuesta encontrada ……. !!!!!!!

Oficialmente Microsoft Office 2003 Interop no es compatible con Windows Server 2008 por Microsoft.

Pero después de muchas permutaciones y combinaciones con el código y la búsqueda, encontramos una solución que funciona para nuestro escenario.

La solución es tapar la diferencia entre la forma en que Windows 2003 y 2008 mantienen su estructura de carpetas, porque Office Interop depende de la carpeta del escritorio para abrir / guardar el archivo de manera intermedia. El sistema 2003 alberga la carpeta de escritorio bajo systemprofile que está ausente en 2008.

Entonces, cuando creamos esta carpeta en 2008 bajo la jerarquía respectiva como se indica a continuación; la oficina Interop puede guardar el archivo según sea necesario. Se requiere que esta carpeta de escritorio se cree bajo

C: \ Windows \ System32 \ config \ systemprofile

Y

C: \ Windows \ SysWOW64 \ config \ systemprofile

Esto funcionó para mí …

Compruebe también si .NET 1.1 está instalado porque Interop lo necesita y no está preinstalado por Windows Server 2008.

O también puede usar el método SaveCopyas (). Simplemente tome onargument como cadena de nombre de archivo.

Gracias chicos..!

Prueba esto ya que funcionó para mí …

  1. Vaya a “Inicio” -> “Ejecutar” y escriba “dcomcnfg”
  2. Esto abrirá la ventana de servicios de componentes, expande “Console Root” -> “Computers” -> “DCOM Config”
  3. Busque “Aplicación de Microsoft Excel” en la lista de componentes.
  4. Haga clic derecho en la entrada y seleccione “Propiedades”
  5. Vaya a la pestaña “Identidad” en el cuadro de diálogo de propiedades.
  6. Seleccione “El usuario interactivo”.

cortesía del último párrafo mencionado aquí

Algunos googlean revelan que potencialmente tienes un archivo corrupto:

http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html

y que puede decirle a Excel que lo abra de todos modos con el parámetro CorruptLoad, con algo como …

 Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true); 

Estaba viendo el mismo error al intentar guardar un archivo de Excel. El código funcionó bien cuando estaba usando MS Office 2003, pero después de actualizar a MS Office 2007 comencé a ver esto. Sucedería cada vez que intentara guardar un archivo de Excel en un servidor o un recurso compartido remoto.

Mi solución, aunque rudimentaria, funcionó bien. Acabo de hacer que el progtwig guarde el archivo localmente, como la unidad C: \ del usuario. A continuación, utilice el método “System.IO.File.Copy (archivo, destino, sobrescritura)” para mover el archivo al servidor. Luego puede eliminar el archivo en la unidad C: \.

Funciona genial y simple. Pero ciertamente no es el enfoque más elegante.

¡Espero que esto ayude! Estaba teniendo un montón de problemas para encontrar soluciones en la web hasta que esta idea se me vino a la cabeza.

Es un problema de permiso cuando se ejecuta IIS tuve este problema y lo resolví de esta manera

Fui a las carpetas

C: \ Windows \ System32 \ config \ SystemProfile

y

C: \ Windows \ SysWOW64 \ config \ SystemProfile

son carpetas de sistemas protegidos, por lo general tienen el candado.

Haga clic derecho-> Seguridad de la tarjeta-> Haga clic en Editar-> Agregar un “Usuario de Autenticadet” y asigne permisos.

En este punto, todo está resuelto, si todavía tienes problemas intenta darle todos los permisos a “Todos”

Para todos aquellos que aún experimentan este problema, solo pasé 2 días buscando la maldita cosa. Obtuve el mismo error cuando no había filas en el conjunto de datos. Parece obvio, pero el mensaje de error es muy oscuro, por lo tanto, 2 días.