martes, 20 de octubre de 2015

Problemas conectando MySQL en IIS Asp clásico


Si estás utilizando un IIS para depurar en local códigos de ASP clásico bajo sistemas Windows 7 y superiores, es posible que te hayas encontrado con algunos problemas a la hora de conectarte a una base de datos Mysql (o similares) desde tu código. Vamos a ver como solucionar estos problemas.


Algunos de los problemas que te puedes encontar es:


Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado.


Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][Administrador de controladores ODBC] La arquitectura del DSN especificado no coincide entre el controlador y la aplicación.



La razón de estos errores puede deberse a varios motivos.

En el primer caso, se puede deber a que no tienes instalado el "conector" (el driver de conexión a la base de datos) que estés utilizando. Como supongo que la mayoría usaréis Mysql, en http://dev.mysql.com/downloads/connector/odbc/ podéis encontrar los conectores ODBC, que debes descargar e instalar.

Si teniendo el conector correcto, que podrás comprobar en el "Administrador de Origen de Datos ODBC" ( %windir%\syswow64\odbcad32.exe ó %windir%\system32\odbcad32.exe )* , comprobación que puedes realizar en la pestaña "Controladores", y aún así te aparece el error de "No se encuentra el nombre de origen de datos", antes de empezar a volverte loco/a con otras soluciones, o si ya las has probado y con un nombre ODBC te aparece el segundo error de "la arquitectura...", te propongo que pruebes lo siguiente:

SOLUCIÓN BASADA EN EL POOL del Administrador IIS

Entra en el Administrador de Internet Information Services, en la página principal, y en el desplegable superior (sección), ve a system.applicationHost/applicationPools.

Una vez ahí, pulsa en la sección applicationsPoolDefaults y activa enable32BitAppOnWin64 (True).

Aplica los cambios (botón Aplicar superior).


Esto debería solucionar el problema.


OTRAS CONSIDERACIONES

Cómo has podido notar, cuando te he hablado del Administrador de Origen de Datos ODBC, en Windows 7 (o superior) tienes dos administradores, el que se encuentra en syswow64 y el que está en system32. El segundo, sólo gestiona los conectores 64bits, por lo que si usas un sistema 32bits, debes crear los DSN en el administrador del syswow64. Recuerda, además, que en IIS, se utilizará los DSN del sistema.


ACCEDER A MYSQL CON ASP Clásico

Recuerda, la cadena de conexión a la base de datos, ya sea sin utilizar el DSN:

conn_string = 'Driver={MySQL ODBC 5.1 Driver};Server=servidor;Port=3306;Database=tubasededatos;Uid=usuario;Pwd=contraseña'


ó utilizando un DSN del sistema, creado en el Administrador de Origen de Datos:

conn_string = 'MinombreDSN'



No hay comentarios: