sábado, 2 de julho de 2011

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

Coisa doida hein, pois é a vida de programador não é fácil, principalmente quando recebemos alguns palavrões esquisitos para interpretar.  Esse ai surgiu miraculosamente ao criar uma kb nova, e em seguida ao trocar o database padrão MS Sql Server para Mysql.  Na primeira execução do programa surgiu a coisa.

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

A principio pensei que era relacionado com o próprio banco de dados, mas que nada, a fórmula mágica era formada por um Windows 7 64 bits + Genexus Ev1 + .Net Framework, ..., + algumas dlls, e não esqueçamos do IIS.   A solução, por mais incrivel que pareça era apenas dizer para o IIS para aceitar a execução de DLL´s de 32 bits.  E como fazer isso? Simples, basta no IIS e no Application Pool, que se encontra definido para nossa aplicação, que deve provavelmente ser o  DefaultAppPool, ligar a opção Enable 32-bit Applications=true.  Melhor ainda se criar um pool próprio para a aplicação em questão para não interferir nas demais instaladas.  Essa propriedade é apresentada na opção Advanced Settings.

Pensando bem, qual seria a emoção de nossas vidas se de vez em quando não tivéssemos esses espinhos.

Leitura Complementar: