sql >> Base de Datos >  >> RDS >> Oracle

Problema de VB.NET al conectarse a Oracle 11g

Siento tu dolor, acabo de pasar por algo similar en una situación de despliegue. Probablemente tenga varios clientes instalados y su entorno esté extrayendo dlls para versiones anteriores (incluso si tiene un oracle.dataaccess.dll más reciente al que se hace referencia correctamente en su proyecto). Arreglar esto en su entorno de desarrollo es una cosa, un servidor de implementación de producción es otra. No estoy seguro de cuál es su situación de implementación, pero esto es lo que funcionó para mí.

Después de intentar actualizar odp.net en la página principal de Oracle existente, agregar una nueva página de Oracle, etc., encontré que la manera más fácil de arreglar todo es descargar el último odac con implementación xcopy de Oracle y siga el archivo Léame (y consulte aquí para un artículo anterior sobre esto también). Básicamente, ejecutará un archivo install.bat para configurarlo localmente (en una carpeta separada, la mía era c:\oracle_odac), luego cambiará la referencia de su proyecto para que apunte a oracle.dataaccess.dll en esta nueva carpeta (utilicé 4 en lugar de 2.x), y agregue los directorios bin de la nueva carpeta al frente de su ruta (c:\oracle_odac\bin y c:\oracle_odac\odp.net\bin\4). En su servidor de implementación, solo tendrá que copiar toda la carpeta c:\oracle_odac (a través de xcopy o sin embargo) y configurar la ruta.

Dicho esto, espero ansiosamente el lanzamiento de producción del totalmente administrado odp.net de Oracle (en beta ahora).

EDITAR:solo para agregar que puede evitar jugar con PATH si configura en su aplicación o archivo de configuración web el dllpath. Por ejemplo:

<configuration>
...
    <configSections>
      <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>  
...

<oracle.dataaccess.client>
    <settings>
      <add name="DllPath" value="c:\oracle_odac\bin"/>
    </settings>
  </oracle.dataaccess.client>
...

Esto anulará otras configuraciones como el registro o machine.config. Y permitirá que múltiples configuraciones de odp.net existan pacíficamente, y permitirá que cada aplicación apunte a la versión que necesita en el mismo servidor.