业务流程引擎的运行时验证

您可以配置业务流程引擎,使其执行各种运行时验证,这些验证可帮助您测试业务流程并诊断可能出现的配置错误或数据错误。

您可以在 BTSNTSvc.exe.config 中设置标志。BTSNTSvc.exe.config 是一个配置文件,您可以在 BTSNTSvc.exe 所在的目录(通常在 BizTalk 部署目录中)中创建或编辑该文件。 可以在 BTSNTSvc.exe.config 文件中设置以下标志:

  • 如果将 ValidateAssemblies 标志设置为 True,引擎将尝试加载由业务流程的直接依赖程序集引用的所有程序集,并在失败时引发 Microsoft.XLANGs.Core.AssemblyValidationException。

  • 如果将 ValidateSchemas 标志设置为 True,引擎将使用 System.Xml。XmlValidatingReader 用于验证表示消息部件类型的每个架构,并在失败时引发 System.Xml。XmlException。

  • 如果将 ValidateCorrelations 标志设置为 True,则引擎将验证在并行车队中,与其中一个车队接收匹配的所有消息是否具有相同的相关属性值,并在失败时引发 Microsoft.XLANGs.Core.CorrelationValidationException。

  • 如果将 ExtendedLogging 标志设置为 True,引擎将在无法发布的消息的 Microsoft.XLANGs.BaseTypes.PublishMessageException 的信息中显示提升的属性。

    如果要禁用验证,请从配置文件中完全删除标志。 所有验证都启用时,引擎将验证程序集、架构和相关。 有关 BTSNTSvc.exe.config 的详细信息和示例,请参阅 业务流程引擎配置

验证程序集

业务流程引擎将验证业务流程引用的所有程序集是否可用。 为了使验证成功,在激活业务流程的第一个实例时,所有引用的程序集都必须在全局程序集缓存 (GAC) 中。 如果验证失败,则将在应用程序日志中记录错误并挂起业务流程。

验证架构

只要分配了 XSD 部分,业务流程引擎就会针对其架构验证该部分的数据。 如果验证失败,则将在应用程序日志中记录错误并引发异常。

验证相关

业务流程引擎将确认:为具有给定业务流程实例的相关指定的属性值反映在从该业务流程实例发送的所有消息中。 如果未设置 validateCorrelation,引擎将假定发送的消息包含正确的相关值,并且不会执行检查。

如果任何关联验证失败,引擎会将错误记录到应用程序日志中,并引发 CorrelationValidationException 类型的异常。

默认情况下,未设置 validateCorrelation

另请参阅

调试业务流程
业务流程引擎配置