Pergunta

Eu recebi este erro após a atualização para o Windows 7 de 64 bits e, em seguida, executar um .NET Web site existente.

[InvalidOperationException: Tentativa de carregar bibliotecas de cliente Oracle jogou BadImageFormatException. Este problema irá ocorrer quando executado no modo de 64 bits com os componentes de cliente Oracle de 32 bits instalado.]

Eu só ter instalado a 32-bit Oracle Client instalado e eu entendo que em minha máquina de desenvolvimento de 64 bits do aplicativo está esperando bibliotecas de 64 bits a menos que explicitamente declarado. Esta é a partir da busca que tenho feito até agora.

Eu li que eu posso mudar o Platform Solution para x86, que irá instruir o aplicativo para usar 32-bit se é isso que ele encontra. Eu gostaria de fazer isso, mas não há nenhuma opção x86 para o site na solução Visual Studio.

Eu criei o aplicativo de teste um e eu tenho a opção, eu criei um site de teste e isso não aconteceu. Como posso compilar um site para x86 para que ele irá usar o Oracle Client de 32 bits.

Felicidades

Foi útil?

Solução

No Gerenciador do IIS, criar um pool de aplicativos e conjunto que pool de aplicativos para executar no modo de 32 bits. Em seguida, atribuir o seu site usando 32-bit Oracle Client para executar em que pool de aplicativos de 32 bits.

Uma vez que o processo de trabalho que o IIS é iniciado para esse pool de aplicativos é um processo de 32 bits, quando ele tenta carregar o CLR ele irá carregar o CLR de 32 bits e, portanto, irá carregar a sua montagem no modo de 32 bits. Isto é verdadeiro mesmo se a sua montagem foi compilado para os modos de 64 bits e 32 bits. Sua montagem em execução no modo de 32 bits pode então chamar o Oracle Client em execução no modo de 32 bits.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top