odp.net鏈接方式,部署問題總結

 

一. 摘要

在C#開發的過程當中,常常須要操做Oracle數據庫,而實際在部署程序的時候,常常要根據系統環境(3二、64bit)、不安裝Oracle客戶端等等需求,而Odp.net 也沒有完美兼容的類庫,應用能夠調用, 因此部署起來老是碰到各類問題,挺頭疼的,在這裏,我對工做中碰到的問題進行總結一下。redis

二. 本文提綱

鏈接方式數據庫

32位系統ide

64位系統測試

免安裝Oracle客戶端spa

小結.net

三. 主要內容

 

鏈接方式

C#鏈接Oracle的方式,我通常都是經過odp.net 進行鏈接命令行

 

<configuration>
    <connectionStrings>
      <add name="OracleDB" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=數據庫IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=實例名)));User Id=帳號;Password=密碼;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5; Decr Pool Size=2" providerName="Oracle.DataAccess.Client"/>
    </connectionStrings>
</configuration>

32位系統

1. 安裝Oracle客戶端:  ODTwithODAC1120320_32bit  code

2. 直接調用便可,沒什麼好說的,若是要免安裝客戶端,下面會說到component

 

64位環境

 

  1. 將ODAC121012Xcopy_x64.zip解壓到磁盤中的某個目錄,如:「D:\ODAC121012Xcopy_x64.zip」,而後在命令行進入這個目錄,輸入以下命令:「install.bat all C:\odp.net myhome(install all components)」。
  2. 運行上述命令後,將自動將全部的文件拷貝到C:\odp.net目錄下,接下來,在命令行進入C:\odp.net目錄,運行一下命令:「configure.bat all myhome(configure all component) 」。上述命令將自動想GAC註冊ODP.NET相關的dll,同時在vs2010中添加引用的時候能看到想要版本的Oracle.DataAccess.dll。
  3. 最後須要添加系統環境變量Path, c:\odp.net;c:\odp.net\bin;

 

 

配置文件中添加xml

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.121.1.0" newVersion="4.121.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

 

 

免安裝Oracle客戶端:

將5個Oracle客戶端的類庫文件提取出來,放到程序根目錄下,分別是oci.dll、Oracle.DataAccess.dll、orannzsbb11.dll、oraociei11.dll、OraOps11w.dll

 

 <system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </DbProviderFactories>
  </system.data>

關於64位系統下,暫時還未測試,Oracle客戶端的類庫也必須是64位的

 

四. 小結

在部署程序的時候,若是遇到一些捕捉不到的異常,底層跑出來的, 這個時候能夠安裝一下 C++ 的運行庫 ,好比:vc2008redist 或 vc2010redist。

相關文章
相關標籤/搜索