安裝 Microsoft BizTalk Adapter Pack 會複製電腦上的產品二進位檔,並註冊每個適配卡的系結。 本節討論解決安裝錯誤的疑難解答技術。
設定動作的記錄訊息
BizTalk 配接器套件安裝程式會執行安裝 BizTalk 配接器套件的標準工作。 此外,安裝程式也會執行某些自定義動作,例如註冊配接器系結。 您可以記錄設定所執行之標準及自定義動作的訊息。
BizTalk 配接器套件安裝程式會使用 MSI 安裝配接器特定檔案。 因此,安裝程式的記錄是標準的 MSI 記錄。
安裝程式所執行的自定義動作記錄可在 \%TEMP%\adaptersetup.log取得。 如果記錄檔的追蹤失敗,事件記錄檔中也會提供追蹤。
安裝程式無法註冊配接器系結或數據提供者
問題
Microsoft BizTalk 配接器套件安裝精靈無法註冊配接器系結或 .NET Framework Data Provider for mySAP Business Suite,但會繼續進行配接器安裝。
原因
這可能是因為 Windows Communication Foundation (WCF) 的安裝問題、Microsoft Windows Communication Foundation (WCF) 業務線 (LOB) 配接器 SDK 的安裝問題或 machine.config 檔案損毀引起的。 配接器系結會寫入 machine.config 檔案。
解決方法
您應該手動註冊 SAP 配接器的綁定或 SAP 的資料提供者。
註冊配接器系結或數據提供者
瀏覽至電腦上的 machine.config 檔案。 例如,在32位平臺上,machine.config 可在<系統磁碟驅動器>:\WINDOWS\Microsoft.NET\Framework\<version>\CONFIG 下取得。
在此路徑中, <版本> 是 .NET Framework 的版本。
使用文字編輯器開啟檔案。
若要註冊 SAP 配接器系結:
搜尋 「system.serviceModel」 元素,並在其底下新增下列項目:
<client> <endpoint binding="sapBinding" contract="IMetadataExchange" name="sap" /> </client>
在 system.serviceModel\extensions 下搜尋「bindingElementExtensions」元素。
尋找遺漏的 SAP 配接器系結。 在 「bindingElementExtensions」 節點底下新增下列區段。
針對 SAP 配接器,新增:
<add name="sapAdapter" type="Microsoft.Adapters.SAP.SAPAdapterExtensionElement,Microsoft.Adapters.SAP, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
搜尋 system.serviceModel\extensions 底下的元素「bindingExtensions」。
尋找遺漏的 SAP 配接器系結。 在 「bindingExtensions」 節點下新增下列區段。
針對 SAP 配接器,新增:
<add name="sapBinding" type="Microsoft.Adapters.SAP.SAPAdapterBindingSection,Microsoft.Adapters.SAP, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
備註
如需如何判斷公鑰的資訊,請參閱 判斷公鑰和版本。
若要註冊 SAP 的資料提供者:
在 「system.data」 節點下搜尋 「DbProviderFactories」 專案。
尋找遺漏的 SAP 資料供應商。 在「DbProviderFactories」 節點底下新增下列區段。
針對適用於 SAP 的數據提供者,請新增:
<add name="SAPClient Data Provider" invariant="Microsoft.Data.SAPClient" description=".NET Framework Data Provider for mySAP Business Suite" type="Microsoft.Data.SAPClient.SAPClientFactory,Microsoft.Data.SAPClient, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
儲存並關閉 machine.config 檔案。
判斷公鑰和版本
執行下列步驟來判斷 SAP 配接器或適用於 SAP 的數據提供者的公鑰。
流覽至 Windows 目錄,通常是 C:\WINDOWS\assembly。
以滑鼠右鍵按下您要公鑰的 DLL,然後選取 [ 屬性]。 下表列出SAP配接器 DLL 的名稱,以及 SAP 的數據提供者。
配接器/數據提供者 DLL 的名稱 SAP 配接器 Microsoft.Adapters.SAP 適用於 SAP 的資料提供者 Microsoft.Data.SAPClient 在 [ 一般 ] 索引標籤上,針對 [公鑰令牌] 標籤 的值會指定 DLL 的公鑰。 同樣地,[ 版本] 標籤的值會指定 DLL 的版本號碼。
複製公鑰,然後按兩下 [ 取消]。
未安裝有效的配接器錯誤
問題
在 64 位元電腦上運行 64 位元版本 BizTalk 配接器套件,使用 [新增配接器服務參考 Visual Studio 插件] 或 [使用 Visual Studio 的取得配接器服務 BizTalk 專案外掛] 會出現以下錯誤:
No valid adapters are installed on this machine
原因
SAP 配接器是 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。
將 SAP 配接器用戶端 DLL 的 32 位和 64 位版本新增至 PATH 變數,如 librfc32u.dll所述。 DLL 的 32 位版本必須新增至 C:\Windows\SysWow64 資料夾。 DLL 的 64 位版本必須新增至 C:\Windows\System32 資料夾。
這很重要
如果配接器 (32 或 64 位) 是在具有 64 位作系統的電腦上執行,而且您正在使用配接器來撰寫應用程式,則應該將應用程式標示為與配接器相同的類型(32 或 64 位)。 此外,RFC SDK 的版本(32 或 64 位)必須與適配卡版本(32 或 64 位)相同。
例如,如果 32 位配接器是在具有 64 位作系統的電腦上執行,則配接器用戶端應用程式必須標示為 32 位。
如需 SAP 用戶端 DLL 的詳細資訊,請參閱 安裝適用於 SAP 之數據提供者的自定義 RFC。
設定 SAP 配接器埠時發生無效的系結錯誤
問題
當您嘗試在 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 "sapBinding".
Verify the binding extension is registered in machine.config."
原因
SAP 配接器是 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。
將 SAP 配接器 (例如 librfc32u.dll) 用戶端 DLL 的 32 位元和 64 位元版本新增至 PATH 變數中。 DLL 的 32 位版本必須新增至 C:\Windows\SysWow64 資料夾。 DLL 的 64 位版本必須新增至 C:\Windows\System32 資料夾。
這很重要
如果配接器 (32 或 64 位) 是在具有 64 位作系統的電腦上執行,而且您正在使用配接器來撰寫應用程式,則應該將應用程式標示為與配接器相同的類型(32 或 64 位)。 此外,RFC SDK 的版本(32 或 64 位)必須與適配卡版本(32 或 64 位)相同。
例如,如果 32 位配接器是在具有 64 位作系統的電腦上執行,則配接器用戶端應用程式必須標示為 32 位。
如需 SAP 用戶端 DLL 的詳細資訊,請參閱 安裝適用於 SAP 之數據提供者的自定義 RFC。