web-dev-qa-db-fra.com

Exécuter le client Oracle en mode 32 bits sur un ordinateur 64 bits

Je viens de passer d'un bureau Windows 7 32 bits à un ordinateur portable Windows 7 64 bits. Nous développons un programme C # qui contient environ 60 projets dans la solution. Je continue à avoir l'erreur suivante tout en essayant de construire:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

Évidemment, l'erreur est assez explicite et j'essaie de charger toute ma solution en mode 32 bits. J'ai parcouru chaque projet et paramétré la plate-forme cible sur x86, mais je reçois toujours cette erreur. J'ai cherché sur Google et vu d'innombrables approches différentes, mais je n'arrive pas à résoudre ce problème. Quelle est la meilleure façon de s’assurer que mon projet s’exécute en mode 32 bits sur une machine 64 bits?

J'utilise Visual Studio 2008. J'envisage actuellement de passer à la version 32 bits, mais je veux vraiment éviter de le faire.

10
Joseph

J'ai constaté que vous devez installer le client Oracle 32 bits (vous pouvez télécharger le programme d'installation à partir de leur site Web) même si vous utilisez une machine 64 bits.

En outre, lors des discussions, les utilisateurs ont parlé du mode 32 bits, etc. Voici comment vérifier/définir cela pour une application hébergée IIS 7. Vous ne devriez pas avoir besoin de changer cela, mais j’ai ajouté ici pour l’exhaustivité/la référence future.

  • Lancez IIS 7 et développez le nœud du nom du serveur. 
  • Cliquez sur le nœud Pool d'applications et recherchez le pool d'applications Que vous utilisez.
  • Dans le panneau de droite, cliquez sur Paramètres avancés ...
  • Dans la boîte de dialogue qui apparaît, vérifiez le paramètre Activé pour les applications 32 bits, qui est la troisième option à partir du haut.
11
Belogix

Vous devez modifier votre fichier .exe principal pour qu'il s'exécute uniquement en 32 bits. Vous pouvez le faire dans Visual Studio - il suffit de changer Cible de la plateforme de "Tout processeur" en "x86".

Si ce n'est pas possible, utilisez corflags.exe qui force un exe existant à être une application 32 bits.

5
Piotr Stapp

Je me bats avec ce problème depuis des mois et je l’ai finalement résolu. Je pense que tous les messages sont utiles, mais il me manquait une pièce. Je n'avais pas de Microsoft ODBC pour la configuration d'instance Oracle pour User DSN ou System DSN. Je travaille sur une machine Windows 8. Donc, pour moi, je devais aller à la recherche générale dans les fenêtres, taper ODBC et ouvrir le ODBC administrateur de source de données (32 bits). Vérifiez si vous avez une configuration Microsoft ODBC pour Oracle sous l'onglet User DSN ou System DSN. Sinon, cliquez sur Ajouter et sélectionnez Microsoft ODBC pour Oracle. Remplissez les informations pour votre source de données que vous essayez de frapper et cliquez sur OK. Assurez-vous de redémarrer votre ordinateur et c'est ce qui a finalement fonctionné pour moi. J'espère que cela aide certains d'entre vous. 

2
zeroend

Dans mon cas, un client Oracle 64 bits a été installé sur ma machine, mais en générant toujours la même erreur. Donc, j'ai analysé que dans mon application allez dans Application cliquez avec le bouton droit de la souris allez dans -> Propriétés -> onglet Web Et décochez l'option "Utiliser IIS Express" si vous utilisez le Web IIS local. serveur . Le problème a été résolu.

0
user3906334

Vous devez modifier votre fichier .exe principal pour qu'il s'exécute uniquement en 32 bits. Vous pouvez le faire dans Visual Studio - il suffit de remplacer la cible de la plate-forme de "Tout processeur" par "x86" . https://msdn.Microsoft.com/en-us/library/ms185328.aspx

0
user7597235