針對 Siebel 配接器的作業問題進行疑難排解
本節提供集中式位置,以取得使用 Microsoft BizTalk Adapter for Siebel eBusiness Applications 時可能會遇到的操作問題相關資訊。
啟用追蹤
如需有關 Siebel 配接器中追蹤支援的資訊,請參閱 Siebel 配接器的診斷追蹤和訊息記錄。
已知問題
以下是使用 Siebel 配接器時可能會遇到的一些問題和建議的解決方案。
載入配接器系結時發生錯誤
問題
當您嘗試啟動新增配接器服務參考 Visual Studio 外掛程式或取用配接器服務 BizTalk 專案增益集時,GUI 會提供下列錯誤:
There was an error loading the binding, <binding name>, from your system configuration.
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.
原因
當您啟動 [新增配接器服務參考外掛程式] 或 [取用配接器服務增益集] 時,WCF 會載入所有已安裝介面卡的配接器系結。 接著,配接器系結相依于特定的企業應用程式用戶端應用程式軟體。 因此,您可能會因為下列其中一個或兩個原因而面臨此問題:
安裝介面卡的電腦上未安裝必要的 LOB 用戶端軟體。
您已完成配接器的「一般」或「完成」安裝,它會在 BizTalk 配接器套件中安裝所有介面卡。 不過,用戶端程式庫只能針對一個企業應用程式安裝。 因此,GUI 無法載入其他配接器的系結。
解決方法
請確定您在安裝 BizTalk 配接器套件的電腦上安裝必要的用戶端版本。
請確定您執行配接器的自訂安裝,只安裝您需要的介面卡。
Siebel 配接器不會顯示在 BizTalk Server 管理主控台中的介面卡清單中
問題
不同于隨附于 BizTalk Server 的舊版介面卡,BizTalk 配接器套件隨附的 Siebel 配接器不會顯示在 BizTalk Server 管理主控台中的介面卡清單中。
原因
最新的 Siebel 配接器是 WCF 自訂系結。 因此,雖然BizTalk Server管理主控台會顯示 WCF-Custom 配接器,但它不會顯示 WCF 自訂系結,因此不會顯示 WCF 型 Siebel 配接器。
解決方法
您可以依照將Siebel 配接器新增至 BizTalk Server 管理主控台中所述的步驟,明確地將 Siebel 配接器新增至 BizTalk Server 管理主控台。
連線到 Siebel 系統時發生錯誤
問題
當您嘗試連線到 Siebel 系統時,[新增配接器服務參考外掛程式] 或 [取用配接器服務增益集] 會提供下列錯誤:
Connecting to the system LOB has failed. Retrieving the COM class factory for component with CLSID {ID} failed due to the following error: 80040154
原因
Siebel Web 用戶端可能不會安裝在電腦上。
解決方法
請確定電腦上已安裝支援的 Siebel Web 用戶端版本。 如需 Siebel 支援的用戶端和伺服器版本,請參閱安裝指南。 安裝指南位於 < 系統磁片磁碟機 > :\Program Files\Microsoft BizTalk Adapter Pack\Documents。
擷取超過 65536 個節點的 XRL 時發生錯誤
問題
配接器會在擷取超過 65536 個節點的 XML 輸出時,提供下列錯誤。
Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.
原因
配接器無法序列化和還原序列化超過 65536 個專案的物件。
解決方法
您可以藉由設定 maxItemsInObjectGraph
參數來修正此問題。 您可以使用下列兩種方式之一來設定:
變更服務類別之 屬性中的 參數,
maxItemsInObjectGraph
ServiceBehavior
以設定此參數。將下列內容新增至應用程式的 app.config 檔案。
<behaviors> <endpointBehaviors> <behavior name="NewBehavior"> <dataContractSerializer maxItemsInObjectGraph="65536000" /> </behavior> </endpointBehaviors> </behaviors>
範例 app.config 看起來會像這樣:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="NewBehavior">
<dataContractSerializer maxItemsInObjectGraph="65536000" />
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint behaviorConfiguration="NewBehavior" binding="siebelBinding"
contract="IOutboundContract" name="siebel_ICalculator" />
</client>
</system.serviceModel>
</configuration>
在 BizTalk 中指定 WCF-Custom 埠的連線 URI 時發生錯誤
問題
當您指定連線 URI 以連線到 Siebel 系統時,BizTalk Server會提供下列錯誤。
Error saving properties.
(System.ArgumentException) The specified address is invalid.
(System.ArgumentException) Invalid address;
"<connection URI>" is not a well-formed absolute uri.
原因
連線 URI 不符合標準編碼格式。 例如,參數的值可能包含空格。
解決方法
請確定您指定的連線 URI 符合標準編碼格式。 例如,空格必須取代為 「%20」。
在 Siebel 系統上執行作業時發生錯誤
問題
使用 BizTalk Server 在 Siebel 系統上執行任何作業時,配接器會提供下列錯誤。
針對BizTalk Server
System.ArgumentNullException: Value cannot be null.
原因
未指定訊息的 WCF 動作。 WCF 需要為每個作業指定 SOAP 動作,以通知配接器有關在 LOB 應用程式上執行的作業。
解決方法
在傳送埠中指定 SOAP 動作,或在 BizTalk 協調流程中指定為訊息內容屬性。 如需指示,請參閱 設定 Siebel 的 SOAP 動作。 如需每個作業的動作清單,請參閱 訊息和訊息架構 。
XmlReaderParsingException,因為指定動作中的作業名稱不正確
問題
BizTalk Server 管理主控台會在將訊息傳送至 Siebel 系統時,提供下列錯誤:
Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: Invalid argument:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="<operation_name>" Action="<action>" />
</BtsActionMapping>
原因
如果您藉由匯入取用配接器服務 BizTalk 專案增益集所建立的埠系結檔案來設定 WCF-Custom 埠,埠中的動作會以下列格式指定:
<BtsActionMapping>
<Operation Name="Op1" Action="http://MyService/Svc/Op1" />
</BtsActionMapping>
在上述格式中,作業名稱是由您在產生架構時所選擇的作業所控管。 例如,如果您在 Siebel 商務元件上產生查詢作業的架構,動作中的作業名稱會是 「Query」。 不過,在 Visual Studio 中 BizTalk 協調流程所建立邏輯埠中的作業名稱可能不同。
解決方法
請確定 Visual Studio) 中 BizTalk 協調流程中的邏輯埠 (中的作業名稱,以及 BizTalk Server 管理主控台中的實體埠 (相同) 。
使用 Siebel 配接器的應用程式不會終止
問題
搭配 Siebel 用戶端 7.5 版使用 Siebel 配接器的應用程式不會終止。
原因
這是因為從 Siebel 伺服器登出時,進程不會終止的問題。
解決方法
請確定您已安裝 Siebel 伺服器的修補程式 7.5.3.17,以及快速修正 ZL0H05。
如果重新開機 Siebel 伺服器,Siebel 配接器可能會停止回應
問題
如果在 Siebel 配接器使用 傳送訊息給 Siebel 伺服器時重新開機 Siebel 伺服器,Siebel 配接器可能會停止回應。
解決方法
重新開機 BizTalk 應用程式主機實例。 若要從 BizTalk Server 管理主控台執行此動作,請在主控台樹中展開[BizTalk 群組],展開 [平臺設定],然後按一下 [主機實例]。 從右窗格中,以滑鼠右鍵按一下主機名稱,然後選取 [ 重新開機]。
配接器無法辨識實體埠上的動作,即使您使用取用配接器服務增益集所產生的系結檔案來建立埠
問題
使用取用配接器服務增益集在 Siebel 系統上產生特定作業的架構之後,增益集也會建立埠系結檔案。 您可以使用 BizTalk Server 管理主控台匯入此系結檔案,以在 BizTalk Server 中建立實體埠。 不過,當您使用這類埠將訊息傳送至 Siebel 系統時,配接器無法瞭解埠上指定的動作,並提供類似下列的錯誤:
Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Incorrect Action
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="<op_name>" Action="<action>" />
</BtsActionMapping>. Correct the specified Action, or refer to the documentation on the allowed formats for the Actions.
原因
當您在 BizTalk 協調流程中建立邏輯埠時,您可以為這些埠上的作業指定特定名稱,或只使用預設名稱,例如Operation_1、Operation_2等。不過,在取用配接器服務增益集所產生的系結檔案中,作業名稱與您產生中繼資料的作業名稱相同。 例如,如果您在帳戶商務元件上產生插入作業的中繼資料,動作將會設定為下列專案:
<Operation Name="Insert" Action="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects/Account/Account/Insert" />
當您匯入系結檔案時,實體埠上會設定相同的動作。 因此,邏輯埠上的作業名稱 (Operation_1、Operation_2等。) 不符合實體埠上動作中指定的作業名稱,因而產生錯誤。
解決方法
請確定邏輯埠中的作業名稱與實體埠中動作中指定的作業名稱相同。 執行下列其中一個動作:
將 BizTalk 協調流程中邏輯埠中的作業名稱從Operation_1等變更為您產生中繼資料的作業,例如 Insert。
將實體埠動作中的作業名稱變更為邏輯埠中的作業名稱。 例如,您可以將實體埠中的動作變更為類似下列內容:
<Operation Name="Operation_1" Action="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects/Account/Account/Insert" />
Siebel 配接器不會處理名稱中有 XML 編碼字串的 Siebel 物件
問題
Siebel 配接器無法執行涉及 Siebel 物件的作業, (商務物件、商務元件、商務服務、挑選清單、方法、欄位、引數等) 名稱中有 XML 編碼字串。 例如,Siebel 配接器將無法使用名稱Time_x0020_Stamp叫用商務服務方法。
解決方法
請確定 Siebel 物件的名稱中不包含 XML 編碼字串。
BizTalk 專案中 RootNode TypeName 的錯誤
問題
在 Visual Studio 的 BizTalk 專案中,如果取用配接器服務增益集所產生的架構包含 RootNode TypeName 屬性的無效字元或保留字,編譯專案時會發生下列錯誤:
Node <node reference> - Specify a valid .NET type name for this root node.
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).
解決方法
以滑鼠右鍵按一下錯誤中所參考的 rood 節點,然後選取 [ 屬性]。
針對 RootNode TypeName 屬性,請移除任何不合法的字元或保留字,例如 dot (.) 。
在 Visual Studio 中使用配接器時不正確系結警告
問題
當您使用配接器在 Visual Studio 中建立應用程式,並開啟配接器所產生的組態檔 (app.config) 時,您會看到類似下列的警告:
The element 'bindings' has invalid child element 'siebelBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...
原因
因為 Siebel 配接器系 siebelBinding
結 不是隨附于 Windows Communication Foundation (WCF) 的標準系結,所以會出現這個警告。
解決方法
您可以放心地忽略此警告。