協調流程引擎的執行階段驗證
您可以設定協調流程引擎以執行各種執行階段驗證,以協助您測試協調流程和診斷可能發生的組態或資料錯誤。
您可以在 BTSNTSvc.exe.config 中設定旗標,而您可以在與 BTSNTSvc.exe 相同的目錄中建立或編輯 BTSNTSvc.exe.config 組態檔 (通常是在 BizTalk 部署目錄中)。 您可在 BTSNTSvc.exe.config 檔案中設定下列旗標:
如果您將 ValidateAssemblies 旗標設定為
True
,引擎會嘗試載入協調流程之立即相依元件所參考的所有元件,並在失敗時擲回 Microsoft.XLANGs.Core.AssemblyValidationException。如果您將 ValidateSchemas 旗標設定為
True
,引擎會使用 System.Xml。XmlValidatingReader 可驗證每個表示訊息元件類型的架構,並在失敗時擲回 System.Xml。XmlException。如果您將 ValidateCorrelations 旗標設定為
True
,引擎會驗證平行傳送中符合其中一個 convoy 接收的所有訊息都有相同的相互關聯屬性值,而且失敗時會擲回 Microsoft.XLANGs.Core.CorrelationValidationException。如果您將 ExtendedLogging 旗標設定為
True
,引擎就會在無法發行之訊息的資訊中顯示升級的屬性。若要停用驗證,可以從組態檔整個移除旗標。 當所有驗證都開啟時,引擎將會驗證組件、結構描述和相互關聯。 如需 BTSNTSvc.exe.config 的詳細資訊和範例,請參閱 協調流程引擎組態。
驗證組件
協調流程引擎將會驗證協調流程參考的所有組件是否為可用。 若要讓驗證成功,在協調流程的第一個執行個體啟動時,所有參考的組件都必須在「全域組件快取」(GAC) 中。 若驗證失敗,會在應用程式記錄檔中記錄錯誤並擱置協調流程。
驗證結構描述
不論何時指派 XSD 部分,協調流程引擎都會依照其結構描述驗證該部分的資料。 如果驗證失敗,錯誤會記錄到應用程式記錄檔,並擲回例外狀況。
驗證相互關聯
協調流程引擎將會確認使用協調流程的指定執行個體為相互關聯指定的屬性值,是否反映在從協調流程執行個體傳送的任何訊息中。 如果未設定 validateCorrelation ,引擎會假設傳送的訊息包含正確的相互關聯值,而且不會執行檢查。
如果有任何相互關聯驗證失敗,引擎會將錯誤記錄到應用程式記錄檔,並擲回 CorrelationValidationException類型的例外狀況。
根據預設, 不會設定 validateCorrelation 。