predeterminado origen nombre ningún especificó encuentra descargar datos controladores controlador configurar conexion cadena .net odbc 32bit-64bit registry

.net - origen - ¿Cómo uso un controlador ODBC de 32 bits en el servidor 2008 de 64 bits cuando el instalador no crea un DSN estándar?



no se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado (3)

Abra el administrador de IIS, seleccione Grupos de aplicaciones, seleccione el grupo de aplicaciones que está utilizando, haga clic en Configuración avanzada en el menú de la derecha. En General, configure "Habilitar aplicaciones de 32 bits" en "Verdadero".

Me encontré con un problema con algún software de terceros que usamos para rastrear el uso de licencias de software en nuestros laboratorios de computación. Recientemente, migramos la aplicación al servidor de 64 bits 2008 luego de recibir garantías de la compañía de que era compatible y realizar algunas pruebas preliminares que mostraban que la aplicación funcionaba en un entorno de 64 bits. Desafortunadamente, la persona que realiza las pruebas no probó la funcionalidad de un par de aplicaciones que confían en acceder a los datos para realizar el procesamiento en vivo y posterior de los datos para generar algunos informes.

Resulta que la aplicación no tiene un controlador ODBC de 64 bits para acceder a sus datos internos y no puede usar un controlador ODBC de SQL Server de 64 bits para exportar sus datos al servidor SQL. Incluye e instala un controlador ODBC de 32 bits, pero lo instala como una fuente de datos de usuario, no como una fuente de datos del sistema, lo que significa que mi servicio de Windows que ejecuta la colección en vivo no puede encontrarlo. Tampoco puedo crear un DSN del sistema porque la consola de administración de Orígenes de datos no puede encontrar el controlador instalado.

Mi pregunta es ¿cómo configuro una fuente de datos para esta conexión a la que puedo acceder desde un servicio de Windows C # / .NET que se ejecuta bajo una cuenta del sistema?

Ya que he descubierto una manera de hacerlo, le proporcionaré mi solución como respuesta (de acuerdo con las FAQ sobre cómo responder a su propia pregunta).

Similar a: ¿Qué software existe para conectar una aplicación ODBC de 64 bits a un controlador ODBC de 32 bits en Windows?


Muchas de estas respuestas son bastante antiguas, así que pensé que actualizaría con una solución que creo que es útil.

Nuestro problema fue similar al de los OP, actualizamos las máquinas XP de 32 bits a Windows 7 de 64 bits y nuestro software de aplicación que utiliza un controlador ODBC de 32 bits dejó de poder escribir en nuestra base de datos.

Resulta que hay dos gestores de fuente de datos ODBC, uno para 32 bits y otro para 64 bits. Así que tuve que ejecutar la versión de 32 bits que se encuentra en C: / Windows / SysWOW64 / odbcad32.exe. Dentro del Administrador de fuentes de datos ODBC, pude ir a la pestaña DSN del sistema y agregar mi controlador a la lista usando el botón Agregar. (Puede consultar la pestaña Controladores para ver una lista de los controladores que puede agregar, si su controlador no está en esta lista, es posible que deba instalarlo).

El siguiente problema fue que el software que ejecutamos se compiló para usar ''Cualquier CPU''. Esto vería que el sistema operativo era de 64 bits, por lo que vería las fuentes de datos ODBC de 64 bits. Así que tuve que forzar el programa para compilar como un programa x86, que luego le dice que mire las fuentes de datos ODBC de 32 bits. Para configurar su programa en x86, en Visual Studio, vaya a las propiedades de su proyecto y en la pestaña de compilación en la parte superior hay una lista desplegable de la plataforma, y ​​elija x86. Si no tiene el código fuente y no puede compilar el programa como x86, es posible que pueda hacer clic derecho en el programa .exe, ir a la pestaña de compatibilidad y elegir la compatibilidad que más le convenga.

Una vez que tuve los controladores agregados y el programa apuntando a los controladores correctos, todo funcionó como solía hacerlo. Esperemos que esto ayude a cualquiera que trabaje con software antiguo.


Resulta que puedes crear conexiones ODBC de 32 bits usando C:/Windows/SysWOW64/odbcad32.exe . Mi solución fue crear la conexión ODBC de 32 bits como un DSN del sistema. Esto todavía no me permitía conectarme a él ya que .NET no podía buscarlo. Después de una búsqueda significativa e infructuosa para encontrar cómo hacer que la clase OdbcConnection busque el DSN en el lugar correcto , me topé con un sitio web que sugirió modificar el registro para resolver un problema diferente.

Terminé creando la conexión ODBC directamente bajo HKLM/Software/ODBC . Busqué en la clave SysWOW6432 para encontrar los parámetros que se configuraron usando la versión de 32 bits de la herramienta de administración ODBC y recreé esto en la ubicación estándar. Sin embargo, no agregué una entrada para el controlador, ya que tampoco fue instalado por el instalador estándar para la aplicación.

Después de crear la entrada (a mano), encendí mi servicio de Windows y todo fue feliz.