Solución:
Respuesta encontrada ……. !!!!!!!
Oficialmente Microsoft Office 2003 Interop no es compatible con Windows Server 2008 de 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 archivos de forma intermedia. El sistema de 2003 aloja la carpeta del escritorio en el perfil del sistema que no estaba en 2008.
Entonces, cuando creamos esta carpeta en 2008 bajo la jerarquía respectiva como se indica a continuación; Office Interop puede guardar el archivo según sea necesario. Esta carpeta de escritorio debe crearse en
C: Windows System32 config systemprofile
Y
C: Windows SysWOW64 config systemprofile
Esto funcionó para mí …
También verifique si .NET 1.1 está instalado porque es necesario para Interop y no preinstalado por Windows Server 2008
O también puede usar el método SaveCopyas (), es solo tomar un argumento como cadena de nombre de archivo)
Gracias chicos..!
Prueba esto ya que funcionó para mí …
- Vaya a “Inicio” -> “Ejecutar” e ingrese “dcomcnfg”
- Esto abrirá la ventana de servicios de componentes, expandirá “Raíz de consola” -> “Computadoras” -> “Configuración DCOM”
- Busque “Aplicación de Microsoft Excel” en la lista de componentes.
- Haga clic derecho en la entrada y seleccione “Propiedades”
- Vaya a la pestaña “Identidad” en el cuadro de diálogo de propiedades.
- Seleccione “El usuario interactivo”.
cortesía del último párrafo mencionado aquí
Algunas búsquedas en Google 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);