web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly Oracle.DataAccess

J'ai un projet asp.net mvc (EF), J'avais téléchargé le fournisseur de données Oracle avec la version 4.112.2.50 -32bit sur mon ordinateur lors du déplacement du projet sur Windows Server 2008 (j'ai la même version d'odp-64bit) I avoir le problème ci-dessous:

Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou l'un de ses dépendances. Une tentative de chargement d'un programme avec un Incorrect a été effectuée. format.

quand je tape Oracle le "Oracle.DataAccess.dll" sur le serveur et le fais avec ma référence de projet .__, j'ai un autre message d'erreur comme le précédent avec un fichier "Oracle.Web"

Impossible de charger le fichier ou l'assembly 'Oracle.Web' ou l'un de ses dépendances. Une tentative de chargement d'un programme avec un Incorrect a été effectuée. format.

aussi si je reçois le fichier "Oracle.Web.dll" du serveur sur ma référence de projet, j'ai la même erreur avec "Oracle.Web" 

31
user975260

Dans le/ IIS Manager , sélectionnez votre serveur et sélectionnez "Pools d'applications". Sélectionnez le pool d'applications utilisé par votre application Web et cliquez sur "Paramètres avancés" dans le menu de droite.

Dans "Section générale" des paramètres avancés, cliquez sur "Activer les applications 32 bits" et réglez-le surTrue.

Ce correctif s'applique uniquement aux serveurs 64 bits qui tentent d'exécuter la version 32 bits des DLL.

Cordialement. George

59
McHaroni

George a écrit:

Dans le gestionnaire IIS, sélectionnez votre serveur et sélectionnez "Pools d'applications". Sélectionnez le pool d'applications utilisé par votre application Web et cliquez sur "Paramètres avancés" dans le menu de droite.

Dans la "Section générale" des paramètres avancés, cliquez sur "Activer les applications 32 bits" et définissez-le sur True.

Ce correctif s'applique uniquement aux serveurs 64 bits qui tentent d'exécuter la version 32 bits des DLL.

L'inverse est également vrai. Si vous utilisez la version 64 bits de la DLL Oracle, vous devez définir "Activer les applications 32 bits" sur false.

--Jacob

6
Jacob
  1. Oracle.DataAccess.dll doit être installé non seulement référencé.
  2. Définissez la propriété de copie locale de la référence sur true.
3
gdoron

Un format incorrect indique un problème de bitness. Pour que le serveur fonctionne, changez le pool d'applications dans lequel votre programme s'exécute pour activer la prise en charge 32 bits ou installer un client Oracle 64 bits.

1
tsells

La suppression des dossiers bin et obj a résolu mon problème.

0
Elvin Mammadov

Changer le pool d'applications de 64 bits à 32 bits est une solution.

0
ward coysman