El proveedor Microsoft.Jet.OLEDB.4.0' no está registrado en la máquina local
Creé una aplicación de Windows desarrollada en .NET 3.5 en un servidor Windows 2008 de 32 bits. Cuando se implementa la aplicación en un servidor de 64 bits, muestra el error "El proveedor Microsoft.Jet.OLEDB.4.0' no está registrado en la máquina local".
Entonces, como solución a este problema, cambié la propiedad de compilación del proyecto a X86, de modo que se compilará en modo de 32 bits y reconstruirá el proyecto en la máquina de 32 bits. Pero el mismo proyecto utiliza otros controladores de base de datos (DB2, SQL, etc.) para conectarse a otras bases de datos. Entonces, cuando implementé mi aplicación nuevamente en el sistema operativo de 64 bits, arroja la excepción "Se intentó cargar un ensamblado de 64 bits en una plataforma de 32 bits".
Estoy usando el controlador Microsoft.Jet.OLEDB.4.0 para leer y escribir en Excel (.xls)
Encontré una solución para este problema. El problema que describí en mi pregunta ocurrió básicamente debido a la incompatibilidad del controlador Microsoft.Jet.OLEDB.4.0 en el sistema operativo de 64 bits.
Entonces, si usamos el controlador Microsoft.Jet.OLEDB.4.0 en un servidor de 64 bits, tenemos que forzar que nuestra aplicación se incorpore en modo de 32 bits (esta es la respuesta que encontré cuando hice una búsqueda exhaustiva de este problema conocido ). y eso hace que se rompa otra parte de mi código.
Afortunadamente, ahora Microsoft ha lanzado un controlador de Office System 2010 compatible con 64 bits que puede usarse como reemplazo del controlador tradicional Microsoft.Jet.OLEDB.4.0. Funciona tanto en servidores de 32 bits como de 64 bits. Lo he usado para la manipulación de archivos de Excel y funcionó bien para mí en ambos entornos.Pero este controlador está en BETA .
Como el enlace de 2010 ya no está disponible, actualmente puede descargar este controlador desde Microsoft Access Database Engine 2016 Redistributable
Si el problema persiste en ASP.NET, todo lo que tuve que hacer fue cambiar la configuración "Habilitar aplicaciones de 32 bits" a Verdadero, en la Configuración avanzada para el grupo de aplicaciones.