sql >> Database >  >> RDS >> Oracle

VB.NET-probleem bij het verbinden met Oracle 11g

Ik voel je pijn, heb net iets soortgelijks meegemaakt tijdens een uitzending. U hebt waarschijnlijk meerdere clients geïnstalleerd en uw omgeving haalt dll's op voor oudere releases (zelfs als u een laatste oracle.dataaccess.dll hebt waarnaar correct wordt verwezen in uw project). Dit oplossen in uw ontwikkelomgeving is één ding, een productimplementatieserver is iets anders. Ik weet niet zeker wat uw implementatiesituatie is, maar hier is wat voor mij werkte.

Na te hebben geworsteld met het upgraden van odp.net in het bestaande oracle home, het toevoegen van een nieuw oracle home, enz., vond ik de gemakkelijkste manier om alles op te lossen door de nieuwste odac met xcopy-implementatie van Oracle, en volg de readme (en zie hier ook voor een ouder artikel hierover). In principe voer je een install.bat-bestand uit om lokaal in te stellen (in een aparte map, de mijne was c:\oracle_odac), en verander dan je projectreferentie om te verwijzen naar de oracle.dataaccess.dll in deze nieuwe map (ik gebruikte 4 in plaats van 2.x), en voeg de bin-dirs van de nieuwe map toe aan de voorkant van uw pad (c:\oracle_odac\bin en c:\oracle_odac\odp.net\bin\4). Op uw implementatieserver hoeft u alleen maar de hele map c:\oracle_odac te kopiëren (via xcopy of hoe dan ook) en het pad in te stellen.

Dat gezegd hebbende, wacht ik met spanning op de productie-release van de volledig beheerde odp.net van Oracle (nu in bèta).

EDIT:Om toe te voegen dat je kunt voorkomen dat je met PATH's knoeit als je het dllpath in je app of webconfiguratiebestand instelt. Bijvoorbeeld:

<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>
...

Dit overschrijft andere instellingen zoals registry of machine.config. En het zorgt ervoor dat meerdere odp.net-configuraties vreedzaam kunnen bestaan ​​en dat elke app kan verwijzen naar de versie die hij nodig heeft op dezelfde server.



  1. Vloeiend Nhibernate Oracle-ID te lang - Probleem met aliasnaam

  2. SQL-query om verschil tussen aangrenzende records te krijgen

  3. XPath-query in hiërarchische gegevens, met behoud van voorouder-nakomelingrelatie

  4. Waarom kan ik via shell verbinding maken met MySQL, maar niet via Python?