none
Problema con Oracle.DataAccess.dll RRS feed

  • Pregunta

  • Buenas,

    Mi equipo de desarrollo es de 64 bits (Windows 10). El servidor donde está instalada la BD Oracle también es de 64 bits (Linux Ubuntu). Tengo instalado el cliente ODAC en mi equipo de desarrollo para poder conectarme a la instancia de BD, dicho cliente es la versión de 64 bits (ODAC121024_x64) ya que es la plataforma de mi equipo de desarrollo.

    He creado un pequeña aplicación de consola con 2 capas para probar la conexión y ver que todo vaya bien. Ambas capas están configurardas para ejecutarse sobre el Framework 4.6.1, sin embargo debo deshabilitar la opción Prefer 32-bit de la capa aplicación para poder conectar con Oracle ya que de lo contrario no funciona:

    Si no deshabilito dicha opción, la aplicación compila correctamente pero ocurre un error al invocar la DLL de la capa DAL que contiene la referencia al ensamblado Oracle.DataAccess.dll

    No se puede cargar el archivo o ensamblado 'Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.

    Así que debo deshabilitar dicha opción para poder conectar.

    Luego trato de realizar la prueba en una aplicación Web pero sucede que ya trae deshabilitada dicha opción por defecto y al ejecutar la aplicación WEB (también con 2 capas) me muestra el error:

    Al parecer debería ir todo bien ya que he revisado otros posts respecto a este tema y pues tengo instalada la versión correcta de ODAC para mi sistema.

    ¿Qué puede estar sucediendo?

    Por favor su apoyo, muchas gracias.

    Saludos.


    • Editado eduar2083 domingo, 21 de febrero de 2016 20:33
    domingo, 21 de febrero de 2016 20:31

Respuestas

  • >>"estaría incorrecto habilitar la compilación de 32 bit

    si eso

    >>no logro siquiera levantar la aplicación web, a pesar que he configurado el Platform target en modo 64 bits, me sigue tirando el mismo error.

    cuando dices levantar quiere decir que haces el deploy en el sitio creado en el iis, no ?

    si es asi recuerda que debes instalar ODAC (que sea la version de 64 bits) en esa PC donde esta el IIS

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de febrero de 2016 3:27

Todas las respuestas

  • >>sin embargo debo deshabilitar la opción Prefer 32-bit de la capa aplicación para poder conectar con Oracle ya que de lo contrario no funciona

    porque estaria incorrecto inhabilitar las compilacion de 32 bit si la pc y windows que usas estan en 64

    es mas yo cambiaria la opcion del "Platform target" para que compile a 64bits y no a Any CPU

    recueda que al instala el ODAC en 64 la compilacion debe ser en la mismas arqitectura para que funcione

    >>Luego trato de realizar la prueba en una aplicación Web pero sucede que ya trae deshabilitada dicha opción por defecto y al ejecutar la aplicación WEB (también con 2 capas) me muestra el error

    validaste que este la dll de Oracle.DataAccess en la carpeta \bin del sitio web

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    domingo, 21 de febrero de 2016 23:28
  • Leandro:

    porque estaria incorrecto inhabilitar las compilacion de 32 bit si la pc y windows que usas estan en 64
    Creo que quisiste decir: "estaría incorrecto habilitar la compilación de 32 bit"

    es mas yo cambiaria la opcion del "Platform target" para que compile a 64bits y no a Any CPU
    Bien, he cambiado el Platform Target de ambas capas en la aplicación de consola y la conexión responde bien tanto en modo Debug (Desarrollo) y en modo Release (Despliegue).

    validaste que este la dll de Oracle.DataAccess en la carpeta \bin del sitio web
    La Dll Oracle.DataAccess si se encuentra en la carpeta bin ya que he agregado como referencia la otra capa (DAL) a la capa Web

    Sin embargo, no logro siquiera levantar la aplicación web, a pesar que he configurado el Platform target en modo 64 bits, me sigue tirando el mismo error. Tengo configurado los proyectos de la siguiente manera:

    CAPA DAL:

    CAPA WEB:

    Qué más podría intentar. Muchas gracias.




    • Editado eduar2083 lunes, 22 de febrero de 2016 0:42
    lunes, 22 de febrero de 2016 0:39
  • >>"estaría incorrecto habilitar la compilación de 32 bit

    si eso

    >>no logro siquiera levantar la aplicación web, a pesar que he configurado el Platform target en modo 64 bits, me sigue tirando el mismo error.

    cuando dices levantar quiere decir que haces el deploy en el sitio creado en el iis, no ?

    si es asi recuerda que debes instalar ODAC (que sea la version de 64 bits) en esa PC donde esta el IIS

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 22 de febrero de 2016 3:27
  • también revisa en tu servidor donde se va a hospedar tu aplicación asp.net que en la GAC no contenga la misma numero de versión del archivo pero de diferente plataforma(32 bit)

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 22 de febrero de 2016 7:46
    Moderador
  • Buenas,

    Disculpen había olvidado este tema, aún no logro resolver.

    cuando dices levantar quiere decir que haces el deploy en el sitio creado en el iis, no ?

    No, esto ocurre desde Visual Studio.

    si es asi recuerda que debes instalar ODAC (que sea la version de 64 bits) en esa PC donde esta el IIS

    He probado publicando en una máquina virtual con Windows Server 2012 instalando previamente el ODAC pero arrojaba un error. Procedí a ejecutar el comando aspnet_reg.exe -i pero sigue sin poder funcionar. El error es el siguiente:

    Mencionar que esto ocurre al invocar la página desde el propio servidor donde está el IIS (máquina virtual).

    Sergio Parra.

    también revisa en tu servidor donde se va a hospedar tu aplicación asp.net que en la GAC no contenga la misma numero de versión del archivo pero de diferente plataforma(32 bit)

    Al parecer la versión de la GAC es la de 

    Debería funcionar :(

    EDITO: Estuve investigando y el error es debido a que faltaba instalar una característica del Servidor IIS (ASP.Net 4.5). Con esto la aplicación ya responde desde el propio Servidor e incluso desde afuera de la máquina virtual. Sólo me falta determinar porqué no funciona desde Visual Studio.



    • Editado eduar2083 domingo, 6 de marzo de 2016 0:46
    sábado, 5 de marzo de 2016 22:42
  • Hola,

    Aún no logro resolver porqué no funciona desde Visual Studio 2015. Como había comentado tengo instalado el ODAC de 64 bits en mi equipo de Desarrollo (Windows 10). La aplicación web se ejecuta correctamente cuando publico en Windows Server 2012 que tiene también instalado ODAC de 64 bits, pero cuando ejecuto desde mi máquina de desarrollo con Visual Studio arroja el error indicando que la dll de OracleDataAccess tiene un formato incorrecto.

    Por favor su apoyo, muchas gracias.


    • Editado eduar2083 sábado, 2 de abril de 2016 21:13
    sábado, 2 de abril de 2016 21:12