Contexte
Cette erreur peut arriver suite à :
– Migration d’un site hébergé sur un serveur web 32Bit vers un serveur web 64Bit
– Connecteurs ODBC 32Bit
– Les applications 32Bit ne sont pas activés pour le site
Dans notre cas, le problème est arrivé suite à la migration d’un site web hébergé sur un serveur Windows 2000 vers un serveur Windows 2008 R2.
Le site en question est développé en ASP.NET et utilise un connecteur ODBC 32Bit.
Problème(s) rencontré(s)
Nous rencontrons cette erreur :
Provider error ‘80004005’
Unspecified error
/site/exemple.asp, line 13
En faisant quelques recherches sur internet, vous trouverez sans doute multitude d’erreurs à peut près similaire à celle-ci. Je ne sais pas si elles sont liées mais rien ne vous empêches de suivre la procédure de résolution qui sera détaillée plus bas.
Exemple d’erreurs :
Microsoft JET Database Engine error ‘80004005’
Unspecified error
Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
[Microsoft] [Gestionnaire de pilotes ODBC] Echec SQLSetConnectAttr du pilote
/test/exemple.asp, line 146
Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
Résolution du problème
La première chose à faire est de contrôler que vous avez bien créé votre connecteur ODBC en 32Bit. Pour cela il vous suffit d’executer l’outil « odbcad32.exe » qui se situe dans le répertoire suivant :
C:WindowsSysWOW64
Je vous laisse ensuite configurer votre connecteur suivant vos paramètres de configuration.
Une fois votre connecteur ODBC 32Bit configuré, rendez vous sur la console IIS puis dans la partie « Application Pools ».
Repérez le pool d’application en relation avec le site web
Faites un clique droit sur le pool d’application puis sur “Advanced Settings….”
Il vous suffit maintenant de modifier le paramètre « Enable 32-Bit Applications » par « True »
Une fois le paramètre modifié, appliquez en cliquant sur « apply » en haut à droite.
Résultat :
Essayez de vous connecter depuis un navigateur web sur votre site, l’erreur ne devrait plus apparaître.