共用方式為


針對 SAP 配接器的安裝問題進行疑難排解

安裝 Microsoft BizTalk 配接器套件會複製電腦上的產品二進位檔,並註冊每個介面卡的系結。 本節討論解決安裝錯誤的疑難排解技術。

設定動作的記錄訊息

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 的資料提供者。

註冊配接器系結或資料提供者

  1. 流覽至電腦上的 machine.config 檔案。 例如,在 32 位平臺上,machine.config 可在系統磁片磁碟機 > :\WINDOWS\Microsoft.NET\Framework\version > \ < CONFIG 下 < 取得。

    在此路徑中, < 版本 > 是.NET Framework的版本。

  2. 使用文字編輯器開啟檔案。

  3. 若要註冊 SAP 配接器系結:

    1. 搜尋元素 「system.serviceModel」,並在其下新增下列內容:

      <client>  
        <endpoint binding="sapBinding" contract="IMetadataExchange" name="sap" />  
      </client>  
      
    2. 在 system.serviceModel\extensions 下搜尋專案 「bindingElementExtensions」。

    3. 尋找遺漏的 SAP 配接器系結。 在 「bindingElementExtensions」 節點下新增下列區段。

      針對 SAP 配接器,新增:

      <add name="sapAdapter" type="Microsoft.Adapters.SAP.SAPAdapterExtensionElement,Microsoft.Adapters.SAP, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />  
      
    4. 搜尋 system.serviceModel\extensions 底下的專案 「bindingExtensions」。

    5. 尋找遺漏的 SAP 配接器系結。 在 「bindingExtensions」 節點下新增下列區段。

      針對 SAP 配接器,新增:

      <add name="sapBinding" type="Microsoft.Adapters.SAP.SAPAdapterBindingSection,Microsoft.Adapters.SAP, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />  
      

      注意

      如需如何判斷公開金鑰的資訊,請參閱 判斷公開金鑰和版本

  4. 若要註冊適用于 SAP 的資料提供者:

    1. 在 「system.data」 節點下搜尋元素 「DbProviderFactories」。

    2. 尋找遺漏的資料提供者 for 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>" />  
      
  5. 關閉並儲存 machine.config 檔。

判斷公開金鑰和版本

執行下列步驟來判斷 SAP 配接器或 SAP 資料提供者的公開金鑰。

  1. 流覽至 Windows 目錄,通常是 C:\WINDOWS\assembly。

  2. 以滑鼠右鍵按一下您想要公開金鑰的 DLL,然後選取 [ 屬性]。 下表列出 SAP 配接器和 SAP 資料提供者的 DLL 名稱。

    配接器/資料提供者 DLL 的名稱
    SAP adapter (SAP 配接器) Microsoft.Adapters.SAP
    Data Provider for SAP Microsoft.Data.SAPClient
  3. 在 [ 一般 ] 索引標籤上,針對 [公開金鑰權杖] 標籤的值會指定 DLL 的公開金鑰。 同樣地,針對 [版本 ] 標籤的值會指定 DLL 的版本號碼。

  4. 複製公開金鑰,然後按一下 [ 取消]。

未安裝有效的配接器錯誤

問題

在執行 BizTalk 配接器套件 64 位版本的 64 位電腦上,使用 Visual Studio 的 [新增配接器服務參考] 或 [取用配接器服務 BizTalk 專案增益集] 會導致下列錯誤:

No valid adapters are installed on this machine  

原因

SAP 配接器是 WCF 自訂系結,此系結會在 machine.config 檔案的 System.ServiceModel 下註冊。 64 位平臺有兩個 machine.config 檔案,一個由 32 位應用程式使用,另一個由 64 位應用程式使用。 因此,當您安裝 BizTalk 配接器套件的 64 位版本時,安裝精靈會在 machine.config 檔案的 64 位版本中註冊系結。 不過,Visual Studio 會以 32 位進程的形式執行,因此當您從 Visual Studio 啟動取用配接器服務增益集時,外掛程式會檢查 machine.config 檔案 32 位版本中的系結,並無法提供錯誤。

解決方法

  • 在 64 位 WCF LOB 配接器 SDK 安裝上安裝 32 位和 64 位版本的 BizTalk 配接器套件。

    重要

    您只能安裝 64 位 WCF LOB 配接器 SDK。 不支援在單一電腦上並存安裝 32 位和 64 位 WCF LOB 配接器 SDK。

  • 為 SAP 配接器新增 32 位和 64 位版本的用戶端 DLL (,例如將 librfc32u.dll) 新增至 PATH 變數。 32 位版本的 DLL 必須新增至 C:\Windows\SysWow64 資料夾。 64 位版本的 DLL 必須新增至 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 位版本時,安裝精靈會在 machine.config 檔案的 64 位版本中註冊系結。 不過,BizTalk Server管理主控台會以 32 位進程的形式執行,因此當您設定介面卡的埠時,它會檢查 machine.config 檔案 32 位版本中的系結,並失敗併發生錯誤。

解決方法

  • 在 64 位 WCF LOB 配接器 SDK 安裝上安裝 32 位和 64 位版本的 BizTalk 配接器套件。

    重要

    您只能安裝 64 位 WCF LOB 配接器 SDK。 不支援在單一電腦上並存安裝 32 位和 64 位 WCF LOB 配接器 SDK。

  • 為 SAP 配接器新增 32 位和 64 位版本的用戶端 DLL (,例如將 librfc32u.dll) 新增至 PATH 變數。 32 位版本的 DLL 必須新增至 C:\Windows\SysWow64 資料夾。 64 位版本的 DLL 必須新增至 C:\Windows\System32 資料夾。

    重要

    如果配接器 (32 或 64 位) 在具有 64 位作業系統的電腦上執行,而且您使用配接器來寫入應用程式,則應該將應用程式標示為與 32 或 64 位) 相同的 (類型) 。 此外,RFC SDK (32 或 64 位) 的版本必須與配接器版本相同 (32 或 64 位) 。

    例如,如果 32 位介面卡在具有 64 位作業系統的電腦上執行,則配接器用戶端應用程式必須標示為 32 位。

    如需 SAP 用戶端 DLL 的詳細資訊,請參閱 安裝適用于 SAP 之資料提供者的自訂 RFC

另請參閱

針對 SAP 配接器進行疑難排解