Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Problema VB.NET conectando-se ao Oracle 11g


Eu sinto sua dor, acabei de passar por algo semelhante em uma situação de implantação. Você provavelmente tem vários clientes instalados e seu ambiente está puxando dlls para versões mais antigas (mesmo se você tiver um oracle.dataaccess.dll mais recente corretamente referenciado em seu projeto). Corrigir isso em seu ambiente de desenvolvimento é uma coisa, um servidor de implantação de produção é outra. Não tenho certeza de qual é a sua situação de implantação, mas aqui está o que funcionou para mim.

Depois de tentar atualizar odp.net no oracle home existente, adicionar novo oracle home, etc., descobri que a maneira mais fácil de corrigir tudo é baixar o mais recente odac com implantação xcopy da Oracle e siga o leia-me (e consulte aqui para um artigo mais antigo sobre isso também). Basicamente, você executará um arquivo install.bat para configurar localmente (em uma pasta separada, a minha era c:\oracle_odac), depois alterará a referência do seu projeto para apontar para o oracle.dataaccess.dll nesta nova pasta (usei 4 em vez de 2.x) e adicione os diretórios bin da nova pasta à frente do seu caminho (c:\oracle_odac\bin e c:\oracle_odac\odp.net\bin\4). Em seu servidor de implantação, você só precisará copiar toda a pasta c:\oracle_odac (via xcopy ou no entanto) e configurar o caminho.

Dito isso, aguardo ansiosamente o lançamento da produção do totalmente gerenciado odp.net da Oracle (em beta agora).

EDIT:Apenas para adicionar que você pode evitar mexer com PATHs se você configurar em seu aplicativo ou arquivo de configuração da web o dllpath. Por exemplo:
<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>
...

Isso substituirá outras configurações, como registro ou machine.config. E permitirá que várias configurações do odp.net existam pacificamente e permitirá que cada aplicativo aponte para a versão de que precisa no mesmo servidor.