針對 Oracle 資料庫配接器的安裝問題進行疑難排解
Microsoft BizTalk 配接器套件的安裝會複製電腦上的產品二進位檔,並註冊每個介面卡的系結。 本節討論如何使用疑難排解技術來解決安裝錯誤,並列出一些已知問題。
記錄安裝動作的訊息
BizTalk 配接器套件安裝程式會執行安裝 BizTalk 配接器套件的標準工作。 此外,安裝程式也會執行某些自訂動作,例如註冊配接器系結。 您可以記錄標準訊息,以及安裝程式執行的自訂動作。
BizTalk 配接器套件安裝程式會使用 MSI 安裝配接器特定的檔案。 因此,安裝程式的記錄是標準 MSI 記錄。
安裝程式執行之自訂動作的所有記錄都可在 %TEMP%\adaptersetup.log 取得。 如果記錄檔的追蹤失敗,事件記錄檔中也會提供追蹤。
安裝程式無法註冊配接器系結
問題
Microsoft BizTalk 配接器套件安裝精靈無法註冊配接器系結,但會繼續進行配接器安裝。
原因
這可能是因為 Windows Communication Foundation (WCF) 安裝、Microsoft Windows Communication Foundation (WCF) 企業營運 (LOB) 配接器 SDK 安裝或 machine.config 檔案損毀所造成的問題。 配接器系結會寫入 machine.config 檔案。
解決方法
手動註冊 Oracle 資料庫配接器系結:
流覽至電腦上的 machine.config 檔案。 例如,在 32 位平臺上,系統磁片磁碟機 > :\WINDOWS\Microsoft.NET\Framework\version > \ < CONFIG 下 < 提供 machine.config。
在此路徑中, < 版本 > 是.NET Framework的版本。
使用文字編輯器開啟檔案。
若要註冊 Oracle 資料庫配接器系結:
搜尋 「system.serviceModel」 元素,並在其下新增下列專案:
<client> <endpoint binding="oracleDBBinding" contract="IMetadataExchange" name="oracleDb" /> </client>
在 system.serviceModel\extensions 下搜尋 「bindingElementExtensions」 專案。
尋找遺漏的 Oracle 資料庫配接器系結。 在 [bindingElementExtensions] 節點下新增下列區段。
針對 Oracle 資料庫配接器,新增:
<add name="oracleDBAdapter" type="Microsoft.Adapters.OracleDB.OracleDBAdapterExtensionElement,Microsoft.Adapters.OracleDB, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
在 system.serviceModel\extensions 下搜尋專案 「bindingExtensions」。
尋找遺漏的 Oracle 資料庫配接器系結。 在 [bindingExtensions] 節點下新增下列區段。
針對 Oracle 資料庫配接器,新增:
<add name="oracleDBBinding" type="Microsoft.Adapters.OracleDB.OracleDBAdapterBindingSection,Microsoft.Adapters.OracleDB, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
注意
如需如何判斷公開金鑰和版本的資訊,請參閱 判斷公開金鑰和版本。
關閉並儲存 machine.config 檔。
判斷公開金鑰和版本
執行下列步驟來判斷 Oracle 資料庫配接器的公開金鑰。
流覽至 Windows 目錄,通常是 C:\WINDOWS\assembly。
以滑鼠右鍵按一下您想要公開金鑰和版本的 DLL,然後選取 [ 屬性]。 下表列出 Oracle 資料庫配接器的 DLL 名稱。
配接器 DLL 的名稱 Oracle 資料庫配接器 Microsoft.Adapters.OracleDB 在 [ 一般 ] 索引標籤上,針對 [公開金鑰權杖 ] 標籤的值會指定 DLL 的公開金鑰。 同樣地,針對 [版本 ] 標籤的值會指定 DLL 的版本號碼。
複製公開金鑰,然後按一下 [ 取消]。
在 64 位安裝上使用配接器服務增益集或新增配接器服務參考外掛程式時發生錯誤
問題
在執行 BizTalk 配接器套件 64 位版本的 64 位電腦上,使用從 Visual Studio 使用配接器服務參考 Visual Studio 外掛程式或取用配接器服務 BizTalk 專案增益集會導致下列錯誤:
No valid adapters are installed on this machine
原因
Oracle 資料庫配接器是 WCF 自訂系結,此系結會在 machine.config 檔案中的 System.ServiceModel 下註冊。 64 位平臺有兩個 machine.config 檔案,一個由 32 位應用程式使用,另一個由 64 位應用程式使用。 因此,當您安裝 BizTalk 配接器套件的 64 位版本時,安裝精靈會在 64 位版本的 machine.config 檔案中註冊系結。 不過,Visual Studio 會以 32 位進程的形式執行,因此當您從 Visual Studio 啟動取用配接器服務增益集時,外掛程式會檢查 32 位版本的 machine.config 檔案中的系結,並無法提供錯誤。
解決方法
在 64 位 WCF LOB 配接器 SDK 安裝上安裝 32 位和 64 位版本的 BizTalk 配接器套件。
重要
您只能安裝 64 位 WCF LOB 配接器 SDK。 不支援在單一電腦上並存安裝 32 位和 64 位 WCF LOB 配接器 SDK。
使用修補程式集 11.1.0.7 安裝 Oracle Client 11.1.0.6 的 32 位和 64 位版本。
注意
若要確定您的應用程式可與最新版本的 ODP.NET 搭配運作,您必須在電腦上安裝「原則 DLL」,並在 GAC 中註冊。 如需詳細資訊,請參閱 Oracle 網站上的 Oracle Data Provider for .NET 。
在 64 位安裝上的 BizTalk Server 管理主控台中設定 Oracle 資料庫配接器埠時,系結錯誤無效
問題
當您嘗試在 BizTalk Server 管理主控台中設定介面卡的埠時,您會收到下列錯誤:
"Unable to create binding configuration element for editing. Check the values of the BindingType and BindingConfiguration properties.
(Microsoft.Biztalk.Adapter.Wcf.Converters.CreateBindingException) Unable to get binding type for binding extension "oracleDBBinding".
Verify the binding extension is registered in machine.config."
原因
Oracle 資料庫配接器是 WCF 自訂系結,此系結會在 machine.config 檔案中的 System.ServiceModel 下註冊。 64 位平臺有兩個 machine.config 檔案,一個由 32 位應用程式使用,另一個由 64 位應用程式使用。 因此,當您安裝 BizTalk 配接器套件的 64 位版本時,安裝精靈會在 64 位版本的 machine.config 檔案中註冊系結。 不過,BizTalk Server管理主控台會以 32 位進程的形式執行,因此當您設定介面卡的埠時,它會檢查 machine.config 檔案 32 位版本中的系結,且無法提供錯誤。
解決方法
在 64 位 WCF LOB 配接器 SDK 安裝上安裝 32 位和 64 位版本的 BizTalk 配接器套件。
重要
您只能安裝 64 位 WCF LOB 配接器 SDK。 不支援在單一電腦上並存安裝 32 位和 64 位 WCF LOB 配接器 SDK。
使用修補程式集 11.1.0.7 安裝 Oracle Client 11.1.0.6 的 32 位和 64 位版本。
注意
若要確定您的應用程式可與最新版本的 ODP.NET 搭配運作,您必須在電腦上安裝「原則 DLL」,並在 GAC 中註冊。 如需詳細資訊,請參閱 Oracle 網站上的 Oracle Data Provider for .NET 。