INCOMPATIBILILDADE ODBC WINDOWS 7 64-BIT

HIDDEN 20/10/2011 19:58:04
#387267
A mais ou menos um ano e meio atrás, tive este mesmo problema, resolvi, mas não me recordo como.

Estou atualizando um site antigo, que utiliza banco Access através de DSN. Acessando Ferramentas Administrativas -> Fontes de Dados ODBC, quando vou adicionar uma fonte de dados do sistema, nenhuma fonte de dados é listada.

Acesso então em \Windows\SysWOW64\odbcad32.exe

Neste caso, as fontes de dados são listadas. Crio o DSN, mas quando rodo a página ASP da uma mensagem de erro:

[Microsoft][ODBC Driver Manager] O DSN especificado contém uma incompatibilidade de arquiteturas entre o Driver e o Aplicativo[Ô].

Este erro também acontece se eu tentar instanciar o DSN numa aplicação VB6.

Eu quebrei a cabeça para resolver isso da primeira vez, e realmente não me lembro o que fiz. EU devia ter documentado, mas achei que jamais utilizaria ODBC novamente.

Alguma dica?

PROFESSOR 21/10/2011 17:59:33
#387352
O problema ocorre em máquinas de 64 bits, pois a biblioteca OleDb é de 32 bits.
No ambiente local (aquele utilizado pelos aplicativos desktop), o driver funciona normalmente, pois utiliza o ambiente [Ô]emulado[Ô] de compatibilidade. Já para as páginas servidas pelo IIS, é necessário que seja feito um pequeno ajuste na configuração de compatibilidade desse serviço.
Você pode resolver isso lançando mão de um script [Ô]nativo[Ô] para habilitar o modo de compatibilidade também nesse ambiente.
O nome do arquivo vbs (visual basic script file) é [Ô]adsutil.vbs[Ô], e ele normalmente é instalado na pasta [Ô]X:\inetpub\AdminScripts[Ô], onde [Ô]X[Ô] é o seu hdrive de boot (primário).

A linha de comando é a seguinte:

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true”

Com isso (traduzindo), os aplicativos do pool dos serviços da W3 (www) são habilitados para a execução dos drivers (e controles ActiveX) contidos na WOW64.

Valew, espero que ajude!
HIDDEN 22/10/2011 17:59:35
#387435
Olá Professor,

Fiz manualmente o que esse script faria.

Ná arvore de console do IIS, clique em Pool de Aplicativos. Na esquerda da janela, clique em Definir padrões de pool de aplicativos. Na janela de configuração, torne a opção Habilitar aplicativos de 32-bi como [txt-color=#e80000]true[/txt-color].

Eu sabia que o problema estava relacionado ao Pool de aplicativos. Só demorei para descobrir como rodar aplicativos de 32-bit nele.

Bem, mais uma questão resolvida.

Tópico encerrado , respostas não são mais permitidas