Frage

Ich habe diesen Fehler, die nach dem 64-Bit-Windows 7 zu aktualisieren und dann eine vorhandene .NET-Webseite ausgeführt wird.

  

[InvalidOperationException: Versuch Oracle-Client-Bibliotheken zu laden, warf BadImageFormatException. Dieses Problem tritt auf, wenn in 64-Bit-Modus mit den 32-Bit-Oracle-Client-Komponenten installieren ausgeführt wird.]

ich nur installierte der 32-Bit-Oracle-Client installiert und ich verstehe, dass auf meiner 64-Bit-Entwicklungsmaschine die Anwendung 64-Bit-Bibliotheken erwartet, sofern nicht ausdrücklich angegeben ist. Dies ist von der Suche ich bisher getan haben.

Ich habe gelesen, dass ich die Solution Platform zu x86 ändern kann, die die Anwendung anweisen, werden 32-Bit zu verwenden, wenn das ist, was es findet. Ich möchte, dies zu tun, aber es gibt keine x86-Option für die Webseite in der Visual Studio-Lösung.

ich die eine Testanwendung erstellt, und ich habe die Möglichkeit, erstellte ich eine Test-Website und es kam nicht. Wie kann ich eine Website zu x86 kompilieren, so dass es das 32-Bit Oracle-Client verwendet wird.

Prost

War es hilfreich?

Lösung

Im IIS-Manager, erstellen Sie eine Application Pool und festgelegt, dass Application Pool in 32-Bit-Modus ausgeführt werden. Dann weist Ihre Website 32-Bit-Oracle-Client in diesem 32-Bit-Anwendungs-Pool ausgeführt werden.

Da der Arbeitsprozess, der für diese Anwendung Pool IIS beginnt, ist ein 32-Bit-Prozess, wenn es die CLR geladen werden versucht, die 32-Bit-CLR geladen werden kann und daher in Ihrer Assembly 32-Bit-Modus wird geladen. Dies gilt auch, wenn die Assembly für 64-Bit- und 32-Bit-Modus kompiliert wurde. Ihre Montage in 32-Bit-Modus ausgeführt wird, kann dann rufen Sie den Client Oracle in 32-Bit-Modus ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top