BadImageFormatException. Dies tritt auf, wenn im 64-Bit-Modus die 32-Bit-Oracle-Client-Komponenten installiert sind

Ich bin immer dieser Fehler während meiner .Net Anwendung versuchen, eine Verbindung zu oracle-Datenbank.

Den Fehler sagt, dass This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.. Aber das habe ich sicher viele Male, dass der client installiert x64 bit nicht 32.

Date Time: 6/8/2014 10:57:55 AM: System.InvalidOperationException: 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. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
       at System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp, IntPtr errhp, IntPtr dst_locp, IntPtr src_locp, UInt64 amount, UInt64 dst_offset, UInt64 src_offset)
       at System.Data.OracleClient.OCI.DetermineClientVersion()
       --- End of inner exception stack trace ---
       at System.Data.OracleClient.OCI.DetermineClientVersion()
       at System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
       at System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
       at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
       at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.OracleClient.OracleConnection.Open()
       at CustomizedSetupInstaller.Runscripts.InitializeDBObjects(String connectionString, String dbProvider)
Kommentar zu dem Problem
Sie sind über System.Daten.OracleClient. Dieser namespace ist veraltet und wird in einer zukünftigen version entfernt .NET. Vielleicht sind Sie mit einem 32-bit-version? Es ist auch nicht Teil der Oracle-client, also, ob Sie eine 32-bit-oder 64-bit-Oracle-client irrelevant ist. Ideal, Sie sollten mit Oracle.DataAccess (oder Oracle.ManagedDataAccess) statt. Kommentarautor: Luke Woodward
Kleiner Fehler: System.Daten.OracleClient nur die Provider, es verwendet auch ein Oracle-Client muss mit der Architektur. Nur Oracle.ManagedDataAccess benötigt keine zusätzliche Oracle-client installiert ist. Vielleicht ist der Oracle Client x64, aber Ihre Anwendung ist 32-bit, funktioniert auch nicht. Es ist möglich, die Installation von 32-bit-und 64-bit-Oracle-client auf der gleichen Maschine Kommentarautor: Wernfried Domscheit

InformationsquelleAutor der Frage Maven | 2014-06-08

Schreibe einen Kommentar