Sistema ODBC32 de 32 bits DSN no Windows 10 aparentemente não consegue acessar a rede

0

Eu tenho um aplicativo que é executado corretamente em mais das minhas máquinas aqui.

Dois deles pararam de funcionar sem motivo que eu pudesse entender (as mesmas atualizações de todos os outros, as mesmas configurações de rede, o mesmo hardware ...).

O problema é que a conexão da fonte de dados falha. O servidor é um servidor MySQL em outro lugar. No começo eu pensei que era um problema de DNS ( isso é DNS, não DSN ) porque o erro dizia que não era possível encontrar meu.servidor.com .

O mais estranho é que, a partir de %SYSROOT%/SysWOW64/ODBCAD32.exe , a fonte de dados do conector MyODBC é listada e o DSN do sistema com o nome correto está lá (igual aos outros computadores). E funciona, no mesmo computador onde o aplicativo não funciona. Ele encontra os bancos de dados, permite escolher o correto - tudo.

Para descartar o DNS, substituí o nome pelo endereço IP correto; a consulta DNS não aconteceu mais, mas recebi um erro diferente imediatamente depois - erro Winsock 10022, soquete inválido. O que me diz que o erro de DNS foi provavelmente devido ao fato de que o aplicativo não pôde se conectar ao soquete do servidor DNS.

Então eu imaginei que era o firewall de alguma forma. Eu tentei desativá-lo tanto da GUI e da linha de comando (netsh advfirewall todos os perfis desativados), sem sucesso. Tentei fazer o log no log de depuração pfw, nada lá (a conexão nem começa). Não há tráfego para a porta TCP 3306 do MySQL - ela é interrompida primeiro.

Não há antivírus instalados nesse computador e tem todas as atualizações (iguais às de todos os outros PCs).

Googling extenso não resultou em nada - o aplicativo está em compartilhamento UNC (o mesmo que as outras máquinas, onde funciona), mas mesmo se eu copiá-lo para a unidade local, nesses dois ele ainda não funciona.

Qualquer que seja o problema?

    
por LSerni 15.05.2018 / 11:36

1 resposta

0

Acontece que eu pensei que eu tinha verificado isso, mas o meu teste foi falho.

Eu encontrei cedo no meu googling 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)

Então eu copiei o aplicativo e o que quer que seja na área de trabalho. E ainda não funcionou.

O que eu tinha esquecido - não ter prestado atenção na época - era que esses dois PCs tinham seus perfis de usuário em um servidor remoto .

Adivinhe. A raiz do servidor não era gravável.

E isso, é claro 1 , impediu que o ODBC estabelecesse uma conexão de rede.

(1) "claro", em um mundo onde um arquivo MIDI não abrirá devido a um erro, que é limpo abrindo o Microsoft Word. Aconteceu comigo quase vinte anos atrás; Eu ainda espero poder esquecer isso algum dia.

    
por 15.05.2018 / 13:20