Le nom DSN du système ODBC32 32 bits sous Windows 10 ne semble pas pouvoir accéder au réseau

0

J'ai une application qui fonctionne correctement sur la plupart de mes machines ici.

Deux d'entre eux ont cessé de fonctionner sans aucune raison que je sois capable de comprendre (mêmes mises à jour que tous les autres, mêmes paramètres réseau, même matériel ...).

Le problème est que la connexion à la source de données a échoué. Le serveur est un serveur MySQL ailleurs. Au début, j’imaginais que c’était un problème de DNS ( c’est-à-dire DNS, pas DSN ) car l’erreur disait qu’il ne pouvait pas trouver my.server.com .

La chose étrange est que %SYSROOT%/SysWOW64/ODBCAD32.exela source de données du connecteur MyODBC est répertoriée et que le DSN système portant le nom correct est présent (identique aux autres ordinateurs). Et cela fonctionne, sur le même PC où l'application ne fonctionne pas. Il trouve les bases de données, permet de choisir la bonne - tout.

Pour exclure DNS, j'ai remplacé le nom par la bonne adresse IP; la requête DNS ne s'est plus produite, mais j'ai immédiatement rencontré une erreur différente immédiatement - Erreur Winsock 10022, socket non valide. Ce qui m'indique que l'erreur DNS était probablement due au fait que l'application ne pouvait pas se connecter au socket du serveur DNS.

J'ai donc deviné que c'était le pare-feu. J'ai essayé de le désactiver à partir de l'interface graphique et de la ligne de commande (netsh advfirewall tous les profils désactivés), mais en vain. Essayé de se connecter sur le journal de débogage de pfw, rien ici (la connexion ne commence même pas). Il n’ya aucun trafic sur le port 3306 de MySQL TCP - il est arrêté en premier.

Il n'y a pas d'antivirus installé sur cet ordinateur et il contient toutes les mises à jour (comme tous les autres PC).

Une vaste recherche sur Google n'a rien donné - l'application est sur le partage UNC (comme sur les autres machines où cela fonctionne), mais même si je la copie sur le disque local, elle ne fonctionne toujours pas.

Quel que soit le problème?

LSerni
la source

Réponses:

0

Il se trouve que je pensais avoir vérifié cela, mais mon test était imparfait.

J'avais trouvé tôt dans mon googler que

If the application using ODBC32 resides on a network drive,
and the user has no write access to the root of that drive,
then ODBC cannot establish a network connection.

(Worth 1500 WTF points)

J'ai donc copié l'application et le reste sur le bureau. Et cela n'a toujours pas fonctionné.

Ce que j’avais oublié - sans y avoir prêté attention à l’époque - c’est que ces deux ordinateurs ont leurs profils d’utilisateur sur un serveur distant .

Devine quoi. La racine du serveur n'était pas accessible en écriture.

Et bien entendu, 1 empêchait ODBC d'établir une connexion réseau.


(1) "bien sûr", dans un monde où un fichier MIDI ne s'ouvrira pas à cause d'une erreur, ce qui sera effacé en ouvrant Microsoft Word. Cela m'est arrivé il y a presque vingt ans; J'espère toujours pouvoir l'oublier un jour.

LSerni
la source