2013-03-08 31 views
11

Sto creando un'applicazione ASP.NET con C# e desidero connettermi al database di Oracle.
Ho aggiunto il riferimento a Oracle.DataAccess nella mia applicazione sul mio computer Microsoft Windows Server 64 bit. Ho anche installato ODAC (Oracle Data Access Component) sulla mia macchina e Oracle.DataAccess.dll è presente anche su questa stradaImpossibile caricare file o assembly 'Errore Oracle.DataAccess

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

ma quando sto cercando di connettersi che incontro seguente errore:

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

hai provato a installare la versione a 32 bit? –

+0

no, ho installato la versione a 64 bit –

+0

@FelipeOriani Cosa devo fare? In realtà sto usando una macchina a 64 bit. –

risposta

5

Per quanto ne so, l'assembly Oracle.DataAccess funziona solo con 32 bit, ho anche questo tipo di problema con 64 bit e in realtà non funziona. La mia soluzione era rimuovere i 64 bit da GAC ​​e installare i 32 bit su GAC. Rimuovo anche qualsiasi file .dll nella cartella bin della mia applicazione per trovare l'assembly su GAC.

Nessun problema se la macchina e il sistema operativo sono a 64 bit, la versione a 32 bit funzionerà correttamente.

UPDATE

vi consiglio di dare un'occhiata a Official Oracle ODP.NET, Managed Driver, che è una versione migliore di Oracle.DataAccess. Questo Managed Driver non ha bisogno del Oracle Client sulla macchina e devi solo fornire il TNS nel campo DataSource del connection string e funziona perfettamente con 32 e 64 bit.

+0

x64 L'assembly Oracle.DataAccess funziona anche perché ho utilizzato un altro utilizzando solo x64 e funziona correttamente. Non riesco a identificare perché si verifica nel mio sistema. @felipe Oriani grazie mille a te per risolvere il mio problema. –

+0

L'assembly Oracle.DataAccess ha versioni a 32 bit e 64 bit e funzionano entrambi senza problemi. Ho usato entrambe le versioni. –

+0

appare ancora sulla mia macchina. Anche la mia macchina è a 64 bit –

3

È necessario installare entrambe le versioni x64 e x86 di Oracle, perché qualcosa (penso che fosse Visual Studio) utilizza la versione x86 durante il debug.

+0

ho pubblicato su IIS. –

1

essenzialmente lo stesso errore

mancanti componenti di installazione ODP.NET come da ultimo post da me e l'altra risposta partecipante.

Hai già controllato GAC?

Se non vedi cartelle Oracle.xxx,

non stanno facendo alcun progresso.

inserire la versione corretta e il bit di Oracle.DataAccess.dll nella cartella application/BIN e creare riferimenti locali. Risolve molti problemi.

+1

Sono sicuro della versione corretta di Oracle.DataAccess.dll. E ho provato a mettere il riferimento locale, ma ha incontrato l'errore seguente. Impossibile caricare il file o l'assembly Oracle.DataAccess o una delle sue dipendenze. Si è tentato di caricare un programma con un formato errato. –

1

Per eseguire il sito Web, è necessario utilizzare IIS poiché il server di sviluppo di Visual Studio viene eseguito solo in modalità a 32 bit.
Nel pool di applicazioni IIS, impostare l'applicazione in modo che venga eseguita a 64 bit. (L'impostazione è nelle impostazioni avanzate)

1

In VS2010, ho cambiato il target della piattaforma in x64 e questo messaggio di errore scompare.

0

Per risolvere questo errore, ho impostato il pool di app in IIS per consentire applicazioni a 32 bit. Aprire Gestione IIS, fare clic con il pulsante destro del mouse sul pool di applicazioni e selezionare Impostazioni avanzate -> impostare "Abilita applicazioni a 32 bit" su Vero. Funziona bene per me.

Problemi correlati